讀js語言精粹收穫

2022-06-08 11:54:10 字數 727 閱讀 2157

1.js可以根據選擇跳出多層迴圈【在迴圈前加個標籤】

label:for(var i=0;i<2;i++)

}}

2.typeof運算子產生的值只有'number','undefined','string','boolean'【es5的基礎資料型別少了乙個null】+'function','object'

注:array和null結果都為'object'

3.如果新增乙個屬性到乙個原型物件中,以該原型建立的物件均可見

4.number string的原型物件都是function,因為它們都是單個函式例項,而function是所有函式的原型物件。

5.如果新建新的方法去修改閉包內的資料,是行不通的,但是可以使用閉包內的方法去修改

var maker=function

() show:

function

() }

}

var unit=maker();

unit.setid(1111);

unit.show();

//1111

unit.setid2=function(newid)

unit.setid2(2222);

unit.show();

//1111

6.arguments壓根不是陣列  只是資料集合外加乙個length屬性,不可以使用陣列所用的方法

js語言精粹

1 typeof null object 所以不能通過typeof object 判斷為物件 a 判斷為null的,直接 null b 判斷物件 typeof object 因為null為假 2 prototype和 proto 的概念 prototype是函式的乙個屬性 每個函式都有乙個proto...

js語言精粹 繼承

當乙個函式物件被建立時,function構造器產生的函式物件會執行類似這樣的 this.prototype 當採用構造器呼叫模式,即使用new字首去呼叫乙個函式時,這將修改函式執行的方式。如果new運算子是乙個方法而不是乙個運算子,它可能會像這樣執行 function.method new func...

讀《微軟C程式設計精粹》的一些收穫

要使用斷言對函式引數進行確認 為了不必要的開銷,可以僅使用斷言,而不要return 網上有人寫的strcpy 做了太多的出錯處理,導致效能低下,其實沒必要,用assert就行了,這樣在debug模式下能捕捉錯誤,release下又不影響效能。書上提供的memcpy的範例 void memcpy vo...