我正在练习一些场景并找到一个案例:
根据关闭栏功能应该可以访问,var x
所以我希望警报 1 并且条件因为错误而变为错误,if(!1)
但它发出警报undefined
并且条件为真,第二个警报的值为 10。
var x = 1;
function bar() {
alert(x);
if (!x) {
var x = 10;
}
alert(x);
}
bar();
所以我很困惑为什么它提示未定义?
根据在特定范围内的提升,您可以在任何地方定义一个变量,它总是被认为是在顶部定义的。
如果是由于吊装效应,它仍然必须警告 10 而不是 undefined。