gpt4 book ai didi

javascript - 为什么这在 javascript 中有效?

转载 作者:搜寻专家 更新时间:2023-11-01 04:50:52 24 4
gpt4 key购买 nike

刚才,我看到了这样一段代码:


if(condition){
var xx='sss';
}
//do something

if(condition){
console.info(xx);
}

现在,我只是想知道为什么第二个 if 语句有效?它如何访问 xx 变量,因为它是在另一个 if 语句中定义的局部变量?

最佳答案

JavaScript 中的

var 作用域为包含的执行上下文(例如,整个函数的作用域,或者如果 var 处于全局作用域,则为整个全局作用域),< strong>不是 block 。 JavaScript(目前)还没有 block 作用域(ECMAScript6 看起来可能会通过新的 let 关键字添加它)。

您引用的代码完全等同于此:

var xx;   
if(condition){
xx='sss';
}
//do something

if(condition){
console.info(xx);
}

Section 10.5 涵盖了这一点规范的一部分,它描述了引擎在进入新的执行上下文时所做的事情。 (这基本上是一个两阶段过程,首先设置所有声明,然后逐步执行代码。)

更多:Poor misunderstood var

关于javascript - 为什么这在 javascript 中有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9389454/

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