使用IIFY(立即调用函数表达式)和{...}

时间:2019-06-28 16:49:44

标签: javascript module

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

VS

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

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

1 个答案:

答案 0 :(得分:2)

使用块和let将具有相同的效果,但在这种情况下,其效率要高于IIFE。

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