【问题标题】:What does !(function()) mean in JavaScript/jQuery? [duplicate]!(function()) 在 JavaScript/jQuery 中是什么意思? [复制]
【发布时间】:2015-04-01 14:27:41
【问题描述】:

我在ParsleyJs 库中看到以下内容:

!(function(f){...}) 是什么意思?
是否定的吗?

编辑:
经过一番解释,我观察到实际上代码看起来像

!( f(y){}( f(x){} ) );

也可以写成

!( f(z) );

!(Z);

Z = f(z)z = f(y){},最后是y = f(x){}...
所以不清楚是什么函数执行表达式!(Z);

【问题讨论】:

标签: jquery javascript parsley.js


【解决方案1】:

它是自调用匿名函数的简写或替代方法。

(function(){
//code
})();`

可以写成

!function(){
// code
}();

您也可以使用 + 代替 !。

【讨论】:

  • 其实有!( f(y){}( f(x){} ) );或者可以写成!( f(z) );其中z = f(y){},其中y = f(x){},所以不太清楚!(z);是干什么用的
【解决方案2】:

通常你使用任何一个

!function(f){...}()

(function(f){...})()

+function(f){...}()

这里的开发者将前两者结合起来,是多余的。

【讨论】:

  • 注意最后一次,因为+ 被重载为二元运算符,因此它与() 或任何二元/后缀运算符具有相同的潜在问题。一元前缀运算符最适合此操作。过去,我使用过void,因为它很显眼。
  • 从 cmets 中的链接中窃取:另一个好处是!导致分号插入,因此该版本不可能与不以 ; 结尾的文件错误地连接起来
  • ...这并不能真正回答问题。
  • 其实有!( f(y){}( f(x){} ) );或者可以写成!( f(z) );其中z = f(y){},其中y = f(x){},所以不太清楚!(z);是干什么用的
猜你喜欢
  • 1970-01-01
  • 2012-03-05
  • 2012-08-31
  • 2012-07-04
  • 2016-02-14
  • 2017-06-19
  • 2013-08-25
  • 2015-07-15
相关资源
最近更新 更多