错误例子:
因为在解析器解析全局的function或者function内部function关键字的时候,默认是认为function声明,而不是function表达式,如果你不显示告诉编译器,它默认会声明成一个缺少名字的function,并且抛出一个语法错误信息,因为function声明需要一个名字。
function() {// FF报错信息:SyntaxError: function statement requires a name alert("第18行"); }();
正确例子:
我们只需要用大括弧将代码的代码全部括住就行,因为JavaScript里括弧()里面不能包含语句,所以在这一点上,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明。
(function () {// 推荐使用这个 alert("第25行"); } ()); (function () {// 但是这个也是可以用的 alert("第29行"); }) ();