当js代码中包含匿名函数时要特别注意语句是否使用分号结束。
看下面的代码
ar a="z"
var b="c"
function f1(){alert("aa");}
f1()
//(function(){ alert("a"); })();
在注释掉最后一行代码的情况下以上语句是可以正确执行的。
如果将最后一行代码的注释去掉,则会出现"TypeError: f1() is not a function"的错误提示。
原因是js解释器将 "f1() "作为一个函数执行,而名称为"f1()"的函数并不存在。
在js中执行一个函数时可以将函数名与括号分开。比如:
function f1(){alert("aa");}
f1
();
是可以正常执行的。