JavaScript变量本地和全球混乱



这是代码。

function x() {
    var a = b = 10;
    console.log("In function a:" + a);
    console.log("In function b:" + b);
}
x();
console.log("Outside function b:" + b);
console.log("Outside function a:" + a);

我期望的结果是,b将在功能之外不确定,但事实并非如此,即使a在函数之外,CC_3的打印值也未定义。

如果您不在变量声明之前放置var,则将其声明为全局。

由于您还没有将var放在b之前。它被声明为全球,因此您可以在任何地方看到它的价值。

as as as as a具有var且范围。

相同的文档

在执行分配时,将值分配给未确定的变量将其作为全局变量(它成为全局对象的属性)将其创建。声明和未申报的变量之间的差异是........ []

您没有将b声明为本地变量。您将其分配为用于初始化a的表达式的一部分。由于该函数不是本地声明的,因此创建了一个全局变量。

要获得具有相同初始值的两个本地变量,请执行此操作:

function x() {
    var b = 10, a = b;
    console.log("In function a:" + a);
    console.log("In function b:" + b);
}
x();
console.log("Outside function b:" + b);
console.log("Outside function a:" + a);

,因为您没有提到

的变量类型

b

它具有全局范围:)

相关内容

  • 没有找到相关文章