這裡有5個小腳本,有助於你真正理解JavaScript核心–閉包和作用域。沒有在控制台運行之前,嘗試回答每個案例中會彈出什麼內容,然後你可以創建一個測試文件去核對你的答案。你準備好了嗎?
1、
if (!("a" in window)) {
var a = 1;
}
alert(a);
2、
var a = 1,
b = function a(x) {
x && a(--x);
};
alert(a);
3、
function a(x) {
return x * 2;
}
var a;
alert(a);
4、
function b(x, y, a) {
arguments[2] = 10;
alert(a);
}
b(1, 2, 3);
5、
function a() {
alert(this);
}
a.call(null);
我的預測答案分別是:undefined、1、不知道、10、null
答案在本文末,看答案之前,你敢留下你的猜測嗎?
正確答案:1、undefined 2、1 3、function a(x){ return x * 2} 4、10 5、[object window]