1var x = 1;
2var obj =
11 };
// 說出下面的輸出結果
obj.dbl();
//解析:this.x指向當前物件,所以this.x *= 2等同於obj.x *= 2
//而x *= 2,在當前作用域中沒有找到宣告,則在全域性作用域下查詢是否有x, x *= 2等同於window.x *= 2
//日誌列印輸出2 4,此時window.x為2, obj.x為4
var func = obj.dbl;
func();
//func()沒有字首,所以func()相當於window.func(),此時func()中的x與this.x均指向window.x
//日誌列印輸出8 8,此時window.x為8, obj.x為4
var funcbind = obj.dbl.bind(obj);
funcbind();
//func()沒有字首,但是因為通過bind()方法,把funcbind()的作用域與obj的作用域繫結起來,所以func()相當於obj.dbl(),其中x作用域與上面
關於作用域和js執行機制的一道面試題
題目 var funcs for var i 0 i 10 i funcs.foreach function func 這題輸出多少呢?答案 十個10。為什麼?當然了,不排除已經會的童鞋了,如果會的話,請關閉這篇博文,不然只會浪費時間。如果不會,那麼請務必好好看看。回答之前,我們再看看這道題變化後輸...
關於一道JS面試題的思考
題目 for var i 0 i 5 i 1000 console.log new date,i 1 面對這段 時給出的結果也不盡相同,以下是典型的答案 a.20 的人會快速掃瞄 然後給出結果 0,1,2,3,4,5 b.30 的人會拿著 逐行看,然後給出結果 5,0,1,2,3,4 c.50 的人...
一道面試題
一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...