不确定这是否已在其他地方得到解答。我已经通过了this回答
这是我的代码:
var fruit = "apple";
if (true) {
console.log(fruit); // expected "apple"
let fruit = "orange"; // since this is not hoisted to the top
console.log(fruit); // "orange" as expected
}
为什么我们无法访问fruit
块内的外部变量if
。我知道用let
声明的变量不会在块/函数范围内提升。
我收到Uncaught ReferenceError: fruit is not defined
错误。为什么这样?
虽然,如果我将if
块中的变量名更改为其他名称,那么它会按预期工作。那么为什么这个同名的冲突,主要是let fruit = "orange"
没有被提升到顶部。
答案 0 :(得分:2)
参考 - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/let
由于 斯利拉姆