js的一些潛在規則使用分析
目錄
- 為什么開發中建議使用void 0 來代替undefined
- 為什么開發中將未賦值的變量賦值為null,而不是undefined
- String類型的長度
- 為什么parseInt在將字符串轉為數字的時候,需要指定第二個參數
- 對象轉基本數據類型的規律
- JavaScript 中對象獨有的特色
- JavaScript對象分類
- 宿主對象
- 內置對象
- 特殊行為對象
為什么開發中建議使用void 0 來代替undefined
因為 JavaScript 的代碼 undefined 是一個變量,而并非是一個關鍵字,這是JavaScript 語言公認的設計失誤之一,所以,我們為了避免無意中被篡改,我建議使用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
。
為什么開發中將未賦值的變量賦值為null,而不是undefined
null 表示的是:“定義了但是為空”。所以,在實際編程時,我們一般不會把變量賦值為 undefined,這樣可以保證所有值為 undefined 的變量,都是從未賦值的自然狀態。
String類型的長度
因為 String 的意義并非“字符串”,而是字符串的 UTF16 編碼,我們字符串的操作charAt、charCodeAt、length 等方法針對的都是 UTF16 編碼。所以,字符串的最大長度,實際上是受字符串的編碼長度影響的。
JavaScript 中的字符串是永遠無法變更的,一旦字符串構造出來,無法用任何方式改變字符串的內容,所以字符串具有值類型的特征。
JavaScript 字符串把每個 UTF16 單元當作一個字符來處理,所以處理非 BMP(超出U+0000 - U+FFFF 范圍)的字符時,你應該格外小心。
"\uD835\uDD46" // "