由于变量在定义是会声明提升,即声明会被视为存在于其所出现的作用域的整个范围内.但是使用let进行的声明不会再快作用域中进行提升.声明的代码被运行之前,声明并不存在.
{
console.log(a);
var a; //undefined
}
{
console.log(a);
let a; //ReferenceError
}
{
}
由于变量在定义是会声明提升,即声明会被视为存在于其所出现的作用域的整个范围内.但是使用let进行的声明不会再快作用域中进行提升.声明的代码被运行之前,声明并不存在.
{
console.log(a);
var a; //undefined
}
{
console.log(a);
let a; //ReferenceError
}
{
}