(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
两个代码段似乎都具有相同的效果。这两种方法可以互换使用吗?我想念什么吗?
答案 0 :(得分:2)
使用块和let
将具有相同的效果,但在这种情况下,其效率要高于IIFE。
IIFE模式早于let
被添加到JavaScript语言中,因此它更为常见(并在IE10和更早版本中受支持)。