Javascript变量局部和全局混淆

标签 javascript global-variables local-variables

<分区>

这是代码。

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 将在函数外部未定义,但事实并非如此,它的打印 b 值甚至在函数外部虽然 a 未按预期定义。

最佳答案

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

因为你没有把 var 放在 b 之前。它被宣布为全局性的,因此您可以在任何地方看到它的值(value)。

a 有 var 和 scoped。

Docs同样的

Assigning a value to an undeclared variable implicitly creates it as a global variable (it becomes a property of the global object) when the assignment is executed. The differences between declared and undeclared variables are ........[]

关于Javascript变量局部和全局混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47451661/

相关文章:

javascript - 无法退出 Google OAuth2

javascript - 将一个 div 悬停在内容将保留的另一个 Div 上

javascript - 如何解决对象键大小写变化?

javascript - 网站无法正常离线运行

optimization - 一次将值声明为本地值比每次都声明为本地值要慢

python - 如何使用通过函数获得的用户输入来更改全局变量?

c++ - 使用递增值初始化全局变量

python - 在python中创建一个全局函数

Java - 局部变量的修改

c++ - 是否可以在其范围之外访问局部变量的内存?