【问题标题】:why there is a '!' before 'function($){}(window.jQuery)'? [duplicate]为什么有一个'!'在'函数($){}(window.jQuery)'之前? [复制]
【发布时间】:2013-04-18 18:37:35
【问题描述】:

有一个“!”在函数之前,为什么?

http://twitter.github.io/bootstrap/assets/js/bootstrap-transition.js

! function($) {

    //......

}(window.jQuery);

【问题讨论】:

  • 强制函数为表达式,其中结尾(window.jQuery) 然后调用它。
  • 只是一个视觉线索来判断这是一个 IIFE,也可以是 ~+。除非函数将某些内容返回给变量,否则这无关紧要。最常见的做法是将整个表达式括在括号中。
  • 已经问过很多次了...请在提问前做一些研究。这个应该关闭。

标签: javascript twitter-bootstrap


【解决方案1】:

! 使函数被视为一个表达式,这意味着它与此具有相同的效果:

(function($) {

    //......

})(window.jQuery);

【讨论】:

  • 嗯,不完全是:p 如果你想返回一个值,那么(...)()! 好很多
  • 它实际上并没有导致它被评估......这是由最后的括号完成的。这只是表明它被立即调用的一种方式。这是为了更好的可读性(与整个函数的括号相同)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 2021-10-18
  • 2017-02-08
  • 2019-06-17
  • 2012-11-15
  • 2017-01-06
  • 1970-01-01
相关资源
最近更新 更多