已采納回答 / Bosn
|是位運算符,1 | 0 => 10 | 0 => 0二進制的任何數字 | 0都不會改變自己的值,例如:1110 | 0000 => 11100101 | 0000 => 0101之所以能夠實現string轉number,是利用了運算符的規則。ECMA262定義了JavaScript運算符的規范,引擎照著這個規范去實現而已。實現是引擎級別的事情。兩個運算符在隱式將string轉number這點上無區別,
2015-01-11
已采納回答 / Bosn
沒錯,除了Null => "[Object Null]", undefined => "[Object Undefined]"外,其它都是先試圖轉為Object的,所以Object.prototype.toString.apply(new Number())仍然輸出'[object Number]',而typeof new Number(1)卻是"object". 用哪種判斷辦法看需求。效率問題,要看引擎實現,要看算法,要看實際的應用場景,重復次數。單純討論效率問題沒有太大的意義。
2015-01-11
講師回答 / Bosn
該部分會在原型鏈、OOP相關得章節詳細展開討論。簡單說,當定義一個構造器(函數)時,該構造器就會有prototype屬性,prototype.constructor指向這個構造器本身:<...code...>當用該構造器創建Stu...
2015-01-10
已采納回答 / Bosn
準確的說,JavaScript是按共享傳遞的(call by sharing)。對于基本類型,按共享傳遞與按值傳遞(call by value)無異,你可以理解為JavaScript基本類型是按值傳遞的。例:<...code...>而對于對象,較為特殊...
2015-01-10