gpt4 book ai didi

javascript - JS 提升如何在函数中工作?

转载 作者:行者123 更新时间:2023-12-02 16:37:21 25 4
gpt4 key购买 nike

谁能给我解释一下为什么 (1) 返回 11,而 (2) 返回 undefined。函数 block /声明对提升的影响是什么?

// (1)
var boo = 11
console.log(boo) // 11
var boo = 10

// (2)
var boo = 11
function foo() {
console.log(boo)
var boo = 10
}
foo() // undefined

最佳答案

函数内的 JavaScript 提升意味着变量的声明被移动到函数 block 的顶部。当你输入 foo() 时,即使你还没有到达它,也会立即重新声明 var boo(因为 JS 引擎知道这个声明存在于函数中)。因此,它未定义的原因是因为它只是被声明,直到下一行才赋值。

实际上,如果您在适当的范围内声明变量并且不重新声明具有相同名称的变量,这不是您应该遇到的情况,但我理解您的好奇心。

您可以阅读更多相关信息 here .

关于javascript - JS 提升如何在函数中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62432620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com