JavaScript中的吊装说明

问题描述

我所知道的:如果变量在没有声明的情况下初始化,那么它将被自动初始化。

使用JavaScript吊装只会将声明提高到顶部,而不会初始化。

我在Google Chrome控制台上尝试过的操作

console.log(num);

结果:

Uncaught ReferenceError: num is not defined
    at <anonymous>:1:13

原因:由于没有声明或初始化嗡嗡声

num = 9; console.log(num);

结果:9

原因:由于初始化,它也被声明并且num获得其值,即9

console.log(hum); hum = 8;

结果:

VM519:1 Uncaught ReferenceError: hum is not defined
    at <anonymous>:1:13

我不明白的地方:

由于我已经将hum初始化为8,它也会被声明,并且通过在JS中提升,hum的声明也得到提升,我应该得到undifined结果。为什么没有发生?

解决方法

如果在使用var,let或const声明(或初始化)JavaScript变量时未给它们赋值,则JavaScript变量将从undefined值开始。

console.log(hum); hum = 8; console.log(typeOf(hum));

这将为您带来未定义的初始化但未声明的信息。

console.log(hum); var hum = 8;将被吊起。

有关更多信息,

https://medium.com/coding-at-dawn/how-to-check-for-undefined-in-javascript-bcedd62c8ad