我已经在线进行了一些研究,其中一半的文章建议let / const / class没有被吊起,而另一半则声称它们被吊起但未初始化,并且在我们尝试在初始化之前访问它们时抛出ReferenceError。
这是我的问题。是否悬挂了“让”?
a。如果是,请解释一下:
x = 1;
let x;
console.log(x);
输出:ReferenceError:未定义x。
参数:如果悬挂了“ let”,则不应让x放开。移动到顶部,因此在进行初始化时,它应该获得值1,因此应该被打印1?但是,不,它是错误的。
b。如果没有,请解释一下:
var x = 1;
function print() {
console.log(x);
let x = 2
console.log(x);
}
print();
输出:ReferenceError:未定义x。
参数:如果未悬挂'let',则输出应为
1
2
请帮助!