我所知道的:如果变量是在没有声明的情况下初始化的,那么它就会自动初始化。
在JavaScript中提升只会将声明提升到顶部,而不是初始化。
我在Google Chrome控制台上尝试了一下:
console.log(num);结果:
Uncaught ReferenceError: num is not defined
at <anonymous>:1:13原因:由于未声明或初始化hum
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。为什么它没有发生呢?
发布于 2020-08-19 13:42:36
如果在使用var、let或const声明(或初始化) 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
https://stackoverflow.com/questions/63480343
复制相似问题