Javascript变量局部和全局混淆

时间:2017-11-23 09:18:41

标签: 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之外也未按照预期定义。{ / p>

2 个答案:

答案 0 :(得分:0)

您没有将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);




答案 1 :(得分:0)

因为你没有提到

的变量类型
  

B'/ P>

它具有全球范围:)