javascript - 这两个特定的 JavaScript 函数有什么区别?

标签 javascript

<分区>

Possible Duplicate:
The difference between the two functions? (“function x” vs “var x = function”)
JavaScript: var functionName = function() {} vs function functionName() {}

var test = function() {
    var a = 20;
    var b = 30;

    return a + b;
};

function Add() {
    var a = 20;
    var b = 30;

    return a + b;
}

这两个函数有什么区别?如果我调用 add() 或 test(),它们都会给我相同的结果。 var 到底做了什么?

最佳答案

不能在 block 语句中使用函数声明语法。

法律:

function a() {
    function b() {

    }
}

非法:

function a() {
    if (c) {
        function b() {

        }
    }
}

不过你可以这样做:

function a() {
    var b;
    if (c) {
        b = function() {

        };
    }
}

对于我们中间的语言 Nerd ,您需要引用规范的第 12.1、13.1 和 14 节。您将找到以下语法说明。

12.1 block

语法

block :
{ 声明列表opt }

声明列表:
声明
StatementList 语句

13函数定义

语法

函数声明:
函数 标识符( FormalParameterListopt ) {函数体}

函数表达式:
函数标识符opt ( FormalParameterListopt ) { FunctionBody }强>

形式参数列表:
标识符
FormalParameterList , 标识符

函数体:
源元素

14程序

语法

程序:
SourceElements选择

源元素:
源元素
SourceElements 源元素

来源元素:
声明
函数声明

关于javascript - 这两个特定的 JavaScript 函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002671/

相关文章:

javascript - 带复选框 hack 的抽屉菜单,链接指向同一页面上的 anchor

php - JQUERY AJAX 为每个循环自定义属性

javascript - 获取多个元素的内部 HTML

javascript - 当我点击一个绝对定位和更高的 z-index <li> 元素时,mousedown 事件被触发但没有点击事件 - 可能是 CSS?

javascript - 结果未显示在屏幕上,但我没有收到控制台错误

javascript - 从两个数组之间的差异获取百分比值javascript

javascript - jQuery 根据类选择器匹配父项查找子项

javascript - 我的 Javascript 继承方法有什么问题?

javascript - 身份验证后 Perl CGI 重定向

javascript - 基本 Javascript 变量作用域