这是代码。
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>
答案 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>
它具有全球范围:)