首页 > 解决方案 > “让”吊起来了吗?

问题描述

我在网上做了一些研究,一半的文章建议 let/const/class 没有被提升,而另一半声称它们被提升但没有被初始化,并且当我们在初始化之前尝试访问它们时会抛出 ReferenceError。

所以这是我的问题。“让”是否被吊起?

一个。如果是,那么解释一下:

x = 1;
let x;
console.log(x);

输出:ReferenceError:x 未定义。

论据:如果 'let' 被提升,那么不应该让 x;移动到顶部,因此当初始化发生时,它应该得到值 1,因此应该打印 1?但不,它的错误。

湾。如果不是,那么解释一下:

var x = 1;
function print() {
    console.log(x);
    let x = 2
    console.log(x);
}
print();

输出:ReferenceError:x 未定义。

参数:如果'let'没有被提升,那么输出应该是

1
2

请帮忙!

标签: javascript

解决方案


推荐阅读