首页 > 其他 > 详细

"!function",自执行函数表达式

时间:2017-03-07 19:00:47      阅读:115      评论:0      收藏:0      [点我收藏+]

如题为自执行函数表达式。
在这种情况下,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明。

下面2个括弧()都会立即执行

(function () { /* code */ } ()); // 推荐使用这个
(function () { /* code */ })(); // 但是这个也是可以用的

 

由于括弧()和JS的&&,异或,逗号等操作符是在函数表达式和函数声明上消除歧义的,
所以一旦解析器知道其中一个已经是表达式了,其它的也都默认为表达式

var i = function () { return 10; } ();
true && function () { /* code */ } ();
0, function () { /* code */ } ();

 

如果不在意返回值,或者不怕难以阅读,甚至可以在function前面加一元操作符号

!function () { /* code */ } ();
~function () { /* code */ } ();
-function () { /* code */ } ();
+function () { /* code */ } ();

 

"!function",自执行函数表达式

原文:http://www.cnblogs.com/jinxiudaxin/p/6516028.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!