什么了! !function(){...}()的一部分;意思?

时间:2012-10-04 10:52:34

标签: javascript

  

可能重复:
  What does the exclamation mark do before the function?

所以我通过twitter分享按钮代码看到了以下内容:

!function (d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (!d.getElementById(id)) {
        js = d.createElement(s);
        js.id = id;
        js.src = "//platform.twitter.com/widgets.js";
        fjs.parentNode.insertBefore(js, fjs);
    }
}(document, "script", "twitter-wjs");

我只是想知道!function位的作用。

我猜是(function(){...})();的缩写,但我在网上找不到任何确认信息。

1 个答案:

答案 0 :(得分:3)

虽然@ elias-van-ootegem大部分都是正确的,但许多浏览器会认为这是一个没有爆炸声的语法错误。

function() { ... }() // Bad
!function() { ... }() // Good
(function() { ... })() // Better, more readable.
(function() { ... }()) // Best