JS編碼規範(筆記)

  • 使用/* */作爲註釋是不安全的,如果註釋當中有正則,會用到/**/相關的字符,所以不建議使用/* */,只使用//註釋即可。
  • JavaScript不允許在對象字面量中,或者用點運算符提取對象屬性時,使用保留字作爲對象的屬性名。
  • JavaScript數字只有一種數據類型,像Java的double一樣,是64位浮點數。
  • NaN是一個數值,但不等於任何值(包括自己),可以用isNaN()來檢測
  • 一共有三種方式定義全局變量:
    • 第一種是在任何函數之外放置一個var語句
    • 第二種是直接給全局對象添加一個屬性。在Web瀏覽器裏,全局對象名爲windowwindow.foo = value
    • 第三種是直接使用未聲明的變量(隱式全局變量),這種方式並不推薦,以爲雖然不會報致命錯誤,但是一旦出bug排查起來是非常困難的。
  • 請注意=====區別,前者會轉換類型。
'' 	== '0'   // false
'0' == ''   // true
 0 	== '0'    // true


false == 'false'    // false
false == '0'        // true

false == undefined  // false
false == null       // false
null  == undefined  // true

'\t\r\n' == 0       // true
  • JavaScript有自動修復機制,使得當你不寫分號的時候也能正常使用程序,但是正是這種自動補全分號的行爲使得一些編寫不規範的代碼容易出錯:
//返回undefined
return
{
	status: true
};
//正常返回
return {
	status: true
}
  • 有很多並沒有使用的詞被保留作關鍵詞,所以使用變量時要儘量避免使用這些詞,如果使用,那麼在訪問的時候要書寫規範,比如加引號,以下是保留詞(JS關鍵詞):

abstract, boolean, break, byte, case, catch, class, const, continue, debugger, default, delete, do, double, else, enum, export, extends, false, final, finally, float, for, function, goto, if, implements, import, in, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, true, try, typeof, var, volatile, void, while, with

  • typeof用於識別數字時返回'number',但是typeof識別null時返回'object',於是它不能分辨null和對象
//typeof & undefined
typeof null        // object (因爲一些以前的原因而不是'null')
typeof undefined   // undefined
null === undefined // false
null  == undefined // true
null === null // true
null == null // true
!null //true
isNaN(1 + null) // false
isNaN(1 + undefined) // true
  • parseInt()可不是一個好函數,不光是轉換數字的時候遇到非數字就停止不轉了,還會把0開頭的當做八進制來處理,八進制沒有8和9,導致parseInt("08")parseInt("09")都會返回0,但是後面可以加參數來確定到底是幾進制,但是很不喜歡這個函數。
  • 數組,原始類型中沒有數組,它屬於對象的一種,這時候要科普一下基本數據類型了:
    兩個你不想見到的類型:nullundefined,兩個最常用的類型numberstring,一個boolean類型,一個新出的symbol類型,剩下的,全是對象類型(包括標準的對象,數組,日期,Json等等,見https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures)。但是你不要說JavaScript裏什麼都是對象,因爲什麼都可以括號括起來然後.什麼什麼的它就是對象,數字和字符串之所以可以後面跟.什麼什麼,是因爲在JavaScript裏數字和字符串是“有屬性”的,具體參見剛纔的文檔。
  • 假值:在JavaScript裏能判定爲假的還真不少,有:0, NaN, '', false, null, undefined但是你不能用==來判斷其中兩個不同的東西能給你返回true
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章