注意庙曙,對(duì)于var命令來說白华,局部變量只能在函數(shù)內(nèi)部聲明杏糙,在其他區(qū)塊中聲明,一律都是全局變量浆熔。
if (true) { var x = 5;} console.log(x); // 5
上面代碼中本辐,變量x在條件判斷區(qū)塊之中聲明,結(jié)果就是一個(gè)全局變量医增,可以在區(qū)塊之外讀取慎皱。
除了參數(shù)問題,setTimeout還有一個(gè)需要注意的地方:如果被setTimeout推遲執(zhí)行的回調(diào)函數(shù)是某個(gè)對(duì)象的方法叶骨,那么該方法中的this關(guān)鍵字將指向全局環(huán)境茫多,而不是定義時(shí)所在的那個(gè)對(duì)象。
var x = 1; var o = { x: 2, y: function(){ console.log(this.x); } }; setTimeout(o.y,1000); // 1