(function() {
let val = 10;
console.log(val); // 10
})() // executed immediately
console.log(val); // val is not defined
VS
{
let val = 10;
console.log(val); //10
} // executed immediately
console.log(val) // val is not defined
这两个代码片段看起来具有相同的效果。这两种方法可以互换使用吗?我有什么遗漏吗?
const
或let
时,块才能正常工作。如果使用var
,则其作用域将限定为最近的函数(如果不存在,则为全局)。 - Joseph