首页 > 解决方案 > 对于本地和全局范围,提升“让”变量是否不同?

问题描述

我正在尝试下面的代码片段 -

1)

console.log(a);
let a = 5;

我得到 - 未捕获的 ReferenceError: a is not defined at :1:13

2)

a = 10;
let a = 5;

我得到 - 未捕获的 ReferenceError:在初始化之前无法访问“a”:1:3

如果我在函数中尝试相同的片段 -

3)

function someName() {
    console.log(a);
    let a = 5;    
}
someName()

我得到 - Uncaught ReferenceError: Cannot access 'a' before in someName (:2:17) at :1:1

4)

function someName() {
        a = 10;
        let a = 5;    
}
someName()

我得到 - Uncaught ReferenceError: Cannot access 'a' before in someName (:2:11) at :5:5

为什么 1) 和 2) 但 3) 和 4) 的错误消息不同。对于全局和本地范围,“让”提升是否不同?

标签: javascriptscope

解决方案


推荐阅读