講師回答 / Bosn
,操作符就是從左到右依次計算表達式,最后返回最右邊的操作數。所以這里(1, 2, 3)返回3.單純按照例子中這樣寫沒特別意義,寫var val = 3;即可。
2015-03-11
講師回答 / Bosn
先搞清楚什么是函數聲明一個完整語句,以function開頭,例如:// 這是函數聲明function foo() {}而用括號括起來的,或者前面有一元操作符的,都是函數表達式,例如:// 函數表達式(function foo() {})// 函數表達式!function foo() {}// 函數表達式+function foo() {}
2015-03-10
講師回答 / Bosn
str是string(基本類型),本身是沒有方法的。當嘗試把基本類型的str當做對象一樣訪問時,例如:str.length;?解釋器會創建一個臨時的包裝對象,偽代碼:[[tempObj]] = new String(str);[[tempObj]].length; // 返回具體的length;delete [[tempObj]]; // 銷毀臨時對象重復訪問str.length會重復創建這個臨時對象。所以str.t賦值可以成功,但再次訪問str.t返回undefined,因為每次創建的臨時包裝對象都是不...
2015-03-06
講師回答 / Bosn
紅色區域內,try沒有對應的catch,所以throw出去的Error("oops")拋了出去,在此之前不管是否拋異常都要先走finally,所以先輸出"finally", 而后外層的try/catch捕獲到這個Error("oops"),所以第二條輸出"outer" "oops"
2015-03-04
講師回答 / Bosn
在視頻里其實介紹過,如果直接寫{}.toString, ? {}會被解釋為塊兒,類似while (true) {}這里的{}.而這里需要的是一個對象字面量,所以要這樣寫:({}).toString.apply或者var result = {}.toString.apply...都可以。
2015-02-26
講師回答 / Bosn
我已經盡可能的用大量例子去講解了,并且也配合了對比。如果還是看不懂的話,建議找一些書籍,或網上搜索一些材料再仔細看看。如果還有問題,具體問題具體分析?!坝行┠:边@種描述,沒辦法給你回答。
2015-02-24