首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript中的吊装澄清

JavaScript中的吊装澄清
EN

Stack Overflow用户
提问于 2020-08-19 13:08:45
回答 1查看 47关注 0票数 2

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

在JavaScript中提升只会将声明提升到顶部,而不是初始化。

我在Google Chrome控制台上尝试了一下:

代码语言:javascript
复制
console.log(num);

结果:

代码语言:javascript
复制
Uncaught ReferenceError: num is not defined
    at <anonymous>:1:13

原因:由于未声明或初始化hum

代码语言:javascript
复制
num = 9; console.log(num);

结果:9

原因:由于初始化,它也被声明,num得到它的值,即9

代码语言:javascript
复制
console.log(hum); hum = 8;

结果:

代码语言:javascript
复制
VM519:1 Uncaught ReferenceError: hum is not defined
    at <anonymous>:1:13

我不能理解的是:

因为我已经将hum初始化为8,所以它也将被声明,并且通过在JS中提升,hum的声明被提升,因此我应该得到undifined。为什么它没有发生呢?

EN

回答 1

Stack Overflow用户

发布于 2020-08-19 13:42:36

如果在使用var、let或const声明(或初始化) JavaScript变量时没有给它们赋值,则它们的值以undefined开头。

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63480343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档