javascript 的 "!function" 是什么意思?

来源:互联网 发布:linux etc是什么意思 编辑:程序博客网 时间:2024/04/30 06:16

javascript 的 "!function" 是什么意思?

Javascript
专业回答

2014-03-07 16:31
这种叫自执行函数表达式
在这种情况下,解析器在解析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 */ } ();

--------------------------------
注意后面加();调用

  <script>
  var d=3;
    var c=31;
  e = function(){alert('b')};
  //e();
  (function(){ c=1,d=2,e();}());
  //aa();
  alert(c);
  </script>

0 0
原创粉丝点击