括号
by shengoo
JavaScript
var foo = function(){console.log("foo"); }
foo();//foo
//function(){ /* code */ }();//Unexpected token (
var f = function(){ console.log("f"); }();//f
//f();
// 下面这个function在语法上是没问题的,但是依然只是一个语句
// 加上括号()以后依然会报错,因为分组操作符需要包含表达式
//function f1(){ console.log("f1"); }(); // SyntaxError: Unexpected token )
// 但是如果你在括弧()里传入一个表达式,将不会有异常抛出
// 但是foo函数依然不会执行
function f2(){console.log("f2");}( 1 );
f2(1);
// 因为它完全等价于下面这个代码,一个function声明后面,又声明了一个毫无关系的表达式:
function f3(){console.log("f3");}
( 1 );