一道關於JS作用域的面試題

2022-07-07 07:36:08 字數 632 閱讀 4218

1

var 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...