自执行函数表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自执行函数表达式相关的知识,希望对你有一定的参考价值。
javascript里括弧()里面不能包含语句,所以在这一点上,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明。(一个表达式会产生一个值)
(function () { /* code */ } ()); // 推荐使用这个
(function(){alert(1);})(); // 但是这个也是可以用
// 由于括弧()和JS的&&,异或,逗号等操作符是在函数表达式和函数声明上消除歧义的
// 所以一旦解析器知道其中一个已经是表达式了,其它的也都默认为表达式了
var i = function () { return 10; } ();
true && function () { /* code */ } ();
0, function () { /* code */ } ();
// 如果你不在意返回值,或者不怕难以阅读
// 你甚至可以在function前面加一元操作符号
!function () { /* code */ } ();
~function () { /* code */ } ();
-function () { /* code */ } ();
+function () { /* code */ } ();
// 还有一个情况,使用new关键字,也可以用,
new function () { /* code */ } ()
// 如果需要传递参数,只需要加上括弧()
以上是关于自执行函数表达式的主要内容,如果未能解决你的问题,请参考以下文章