首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个变量是4?

为什么这个变量是4?
EN

Stack Overflow用户
提问于 2020-08-14 21:57:26
回答 1查看 81关注 0票数 2

代码语言:javascript
复制
console.log(window.b,b) //undefined undefined
if(true){
    console.log(b) //ƒ b(){} does it get hoisted?
    b = 4
    function b(){}
    b = 3
    console.log(b) //3  Why is this variable 3
}
console.log(window.b,b) //4 4   Why is this variable 4

如果代码删除此行

代码语言:javascript
复制
function b(){}

浏览器将在第1行console.log(window.b,b)处报告错误VM114:1 Uncaught ReferenceError: b is not defined

谁能告诉我为什么它是这样工作的?

如果function b被提升,它是否等于

代码语言:javascript
复制
console.log(window.b,b) //undefined undefined why it doesn't cause an ReferenceError b is not defined
if(true){
    function b(){}
    b = 4
    b = 3
    console.log(b) // 3
}
console.log(window.b,b)  // ƒ b(){} ƒ b(){}

我不是以英语为母语的人,希望你能理解。

EN

回答 1

Stack Overflow用户

发布于 2020-08-14 22:00:33

因为您的函数b被提升了。一旦它到达b = 4,就会给它赋值。

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

https://stackoverflow.com/questions/63414209

复制
相关文章

相似问题

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