括号() 是一个分组操作符,它的内部只能包含表达式(由 运算元 和 运算符(可选) 构成,并产生运算结果的语法结构),不能包含语句
函数表达式和函数声明,两者如何区别:
函数声明:
function 函数名称 (参数:可选){ 函数体 }
函数表达式:
function (参数:可选){ 函数体 }
如果不声明函数名称,它肯定是表达式。
如果声明了函数名称的话,ECMAScript是通过上下文来区分的:
如果function foo(){}是作为赋值表达式的一部分的话,那它就是一个函数表达式,
如果function foo(){}被包含在一个函数体内,或者位于程序的最顶部的话,那它就是一个函数声明。
1 |
|
在一个
表达式
后面加上括号(),该表达式会立即执行
,但是在一个语句
后面加上括号(),是完全不一样的意思,他的只是分组操作符
1 |
|
JavaScript里括弧()里面不能包含语句,所以在这一点上,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明
1 |
|