js的一些潛在規(guī)則使用分析
目錄
- 為什么開發(fā)中建議使用void 0 來代替undefined
- 為什么開發(fā)中將未賦值的變量賦值為null,而不是undefined
- String類型的長(zhǎng)度
- 為什么parseInt在將字符串轉(zhuǎn)為數(shù)字的時(shí)候,需要指定第二個(gè)參數(shù)
- 對(duì)象轉(zhuǎn)基本數(shù)據(jù)類型的規(guī)律
- JavaScript 中對(duì)象獨(dú)有的特色
- JavaScript對(duì)象分類
- 宿主對(duì)象
- 內(nèi)置對(duì)象
- 特殊行為對(duì)象
為什么開發(fā)中建議使用void 0 來代替undefined
因?yàn)?JavaScript 的代碼 undefined 是一個(gè)變量,而并非是一個(gè)關(guān)鍵字,這是JavaScript 語言公認(rèn)的設(shè)計(jì)失誤之一,所以,我們?yōu)榱吮苊鉄o意中被篡改,我建議使用void 0 來獲取 undefined 值。
MDN上的解釋: undefined
is a property of the global object. That is, it is a variable in global scope. The initial value of undefined
is the primitive value undefined
。
為什么開發(fā)中將未賦值的變量賦值為null,而不是undefined
null 表示的是:“定義了但是為空”。所以,在實(shí)際編程時(shí),我們一般不會(huì)把變量賦值為 undefined,這樣可以保證所有值為 undefined 的變量,都是從未賦值的自然狀態(tài)。
String類型的長(zhǎng)度
因?yàn)?String 的意義并非“字符串”,而是字符串的 UTF16 編碼,我們字符串的操作charAt、charCodeAt、length 等方法針對(duì)的都是 UTF16 編碼。所以,字符串的最大長(zhǎng)度,實(shí)際上是受字符串的編碼長(zhǎng)度影響的。
JavaScript 中的字符串是永遠(yuǎn)無法變更的,一旦字符串構(gòu)造出來,無法用任何方式改變字符串的內(nèi)容,所以字符串具有值類型的特征。
JavaScript 字符串把每個(gè) UTF16 單元當(dāng)作一個(gè)字符來處理,所以處理非 BMP(超出U+0000 - U+FFFF 范圍)的字符時(shí),你應(yīng)該格外小心。
"\uD835\uDD46" // "
