gpt4 book ai didi

Javascript:使用 IIFE 和 block 语句之间的区别

转载 作者:行者123 更新时间:2023-11-28 17:26:22 25 4
gpt4 key购买 nike

IIFE主要用于封装作用域

(function () {
let myVar = 10; // not global
// ...
}());

但为什么不直接使用 block 语句呢?

{
let myVar = 10; // also not global
// ...
}

除了作用域封装之外,使用 IIFE 是否还有其他好处?

最佳答案

block 语句是一个相当新的功能。是的,在引入 IIFE 之前,人们使用了 IIFE。

现在我至少可以想到一种情况,即 IIFE 是不可替代的。看看这个:

(async () => { const foo = await someAsyncFunction() })()

看到了吗? await 关键字只能存在于 async 函数中,因此,如果包含 await 的表达式未由任何函数包装,则必须将其包装它由异步 IIFE 实现。

UPD:这个答案已经过时了,因为顶级 await 现已可用,因此无需使用 IIFE 来包装它,因此现在 IIFE 的使用甚至更少(如果有的话)。

关于Javascript:使用 IIFE 和 block 语句之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51527870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com