javascript - 是否有理由在 JavaScript 中编写使用前导 'not' - 运算符 (!) 调用的 IIFE?

标签 javascript iife



在 Javascript 中实现 IIFE 有两种(常见)方法。

// Way 1
(function(){
/* My IIFE Body*/
})()

//Way 2 
!function(){
/* My IIFE Body*/
}()

我想知道是否有充分的理由使用第二个。
我只看到使用第二个的理由。例如,如果您希望 IIFE 返回某些内容,则不能将其分配给这样的变量:

var x = 
(function()
{ return 5; })(); // x will be 5

var y = 
!function()
{ return 5; }(); // y will be true

因为它将被转换为 bool 值。每当我想从 Way-2-IIFE 访问对象时,我都会使用像这样的闭包 fiddle .

第二个变体也没有性能提升,如您所见 here

那么使用方法二有什么充分的理由吗?如果是这样,你能给我举个例子吗?

最佳答案

人们使用第二种方法,因为它可以节省一个字节(!())。

关于javascript - 是否有理由在 JavaScript 中编写使用前导 'not' - 运算符 (!) 调用的 IIFE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29108291/

相关文章:

javascript - 解决可能的严格违规(并帮助 bat 侠拯救哥谭)

javascript - Twitter 按钮和 IIFE

javascript - 在 jquery 中创建一个元素

javascript - react 不变违规=>不一致

javascript - GraphQL:在 GraphQLObjectType 中使用自定义类型定义 GraphQLList 时出错

javascript - 从另一个 Javascript 文件调用 IIFE

javascript - HTML 表单到 Google 电子表格

javascript - 全局记录 jQuery 错误(事件和 DOM 错误)

javascript - 如何将变量作为全局参数传递给 IIFE 函数?

javascript - 由于 IIFE,ParentController.apply() 无法在 ChildController 内部工作