javascript - 使用 IIFY(Immediately-Invoked Function Expression) 和 {...} 之间有什么区别吗

标签 javascript module

<分区>

(function() {
  let val = 10;
  console.log(val); // 10
})() // executed immediately
console.log(val); // val is not defined

对比

{
    let val = 10;
    console.log(val); //10 
} // executed immediately
console.log(val) // val is not defined

这两个代码片段似乎具有相同的效果。这两种方法可以互换使用吗?我错过了什么吗?

最佳答案

使用 block 和 let 会产生相同的效果,但在这种情况下比 IIFE 更有效。

IIFE 模式早于 let 被添加到 JavaScript 语言中,因此它更常见(并在 IE10 和更早版本中受支持)。

关于javascript - 使用 IIFY(Immediately-Invoked Function Expression) 和 {...} 之间有什么区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56810613/

相关文章:

javascript - 函数提升中的奇怪行为

module - zfcUser getState 在另一个模块中

module - use 关键字中的有效路径根是什么?

python - 打开网站上的特定页面

javascript - 如何为 REST API 后端构建 REST 客户端前端?

javascript - 在 Threejs 中使用相机导航时出现问题

bash - 如何在 Bash 源代码中查找变量名

types - Julia:如何从模块内部访问类型?

javascript - 使用 optgroups 和 lodash 动态创建选项

javascript - 如何在PDF文档中插入函数?