B001-偶然创建的全局变量
1.在下面的代码中 typeof a 和 typeof b 结果各自是什么?
function foo() {
let a = b = 0;
a++;
return a;
}
foo();
typeof a;
typeof b;
#答案是:
'undefined' 'number'
#解析:
let a = b = 0;
这一句中声明了一个局部变量a,和一个全局变量b,
#还有这种情况的有:
1
function foo(data) {
for(i = 0; i < data; i ++) {
//.........
}
}
2
function foo() {
i = 0;
//........
}
3
js function foo() { let j = i = 0; //........ }
这三种情况中i,都是全局变量了
上边这个题目可以演变为:
function foo() {
let a;
window.b = 0;
a = window.b;
a++;
return a;
}
foo();
typeof a; // => 'undefined'
typeof window.b; // => 'number'