javascript - 两个函数签名有什么区别?

标签 javascript

我想问一下主要区别是什么

(function(){
 ....
 ....
})();

function() {
 ....
 ....
}();

最佳答案

第一个是自调用函数。

(function(){
 ....
 ....
})();

该函数将被自身调用。它主要用于将代码包装在内部,以防止变量污染全局命名空间。您可以在 jQuery 等流行库中注意到它。

它的另一个用例是:

与其他通常是 block 作用域的语言相比,JavaScript 是函数作用域的语言。如果您想在函数内创建局部变量,您也可以使用 IIFE 来实现此目的。

第二个实际上是语法错误。但它可以像

(function(){
 ....
 ....
}());

这是表示自调用函数的另一种方式。

关于javascript - 两个函数签名有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29258672/

相关文章:

javascript - 为什么 obj.a = ( obj.a || [] ).push( 10 ) 使 obj.a 成为类型编号

php - 如何使用 Enter 回发文本区域?

javascript - 从值 id 获取 id

javascript - 超过 1200 像素的网站的响应能力

javascript - mousedown 事件没有发生

javascript - 无需修改 JavaScript 即可打印

javascript - 如何在此示例 Codepen 上使用 Ipad Safari? (看起来像一场噩梦)

javascript - 在每次迭代时向 DOM 添加一个元素,而不是全部在循环结束时

javascript - 单击扩展按钮时自动执行 Javascript

javascript - querySelectorAll 不返回 DOM 中的所有元素