在下面的示例中,是否为通过for..in循环的每次迭代创建了一个新变量'y'?或者是变量声明被提升到函数的顶部,并重复用于每次迭代?
function example() {
var x;
for(x in obj) {
var y = obj[x];
}
}
由于
答案 0 :(得分:3)
它被悬挂,因为for循环对范围没有影响。
答案 1 :(得分:0)
y是被替换的相同变量。制作一个你会用的新作品
function example() {
var x;
var y= new Array;
for(x in obj) {
y[x] = obj[x];
}
}
答案 2 :(得分:0)
var obj = {
name: "Dan",
surname: "Tao"
};
var x;
for (x in obj) {
var y = obj[x];
}
alert(y);
系统会显示一个警告框,其中包含Tao
文字,表示y
循环范围之外的for
可以访问。