本文爲《編寫可維護的JavaScript》讀書筆記segmentfault
一、變量數組
變量名遵照駝峯大小寫命名法瀏覽器
命名前綴可爲名詞,這樣可與函數名區分函數
常量利用大寫字母和下劃線(用來分隔單詞)來命名佈局
全部變量聲明放在函數頂部插件
函數頂部使用單var語句聲明變量, 不一樣變量之間使用 "," 分隔開code
二、函數對象
先聲明函數而後使用函數繼承
函數調用寫法推薦:事件
doSomthing(); //在函數名和左括號之間沒有空格,與塊語句區分開來
當即執行函數
var value = (function(){...})(); //將函數用一對圓括號包裹起來,加強代碼的可讀性
三、null
適用場景:
初始化變量,它可能賦值爲一個對象
用來與已經初始化的變量(能夠是也能夠不是一個對象)比較
當函數的參數指望是對象時,用做參數傳入
函數返回值爲對象時,用做返回值傳出
不適用場景
不要用null
來檢測是否傳入某個參數
不要用null
來檢測一個未初始化的變量
四、undefined
(被初始化變量的初始值,表示這個變量等待被賦值)
避免使用undefined
變量爲聲明,可將其賦值爲null
五、註釋
註釋與語句不在同一行時,註釋以前須要空行
在同一行,註釋和代碼之間須要空行
添加註釋的原則:
難於理解
代碼看上去有錯誤,實際沒有
瀏覽器特性hack時(例如,原生js綁定事件)
關於註釋,推薦使用插件DocBlockr
六、語句
不論塊語句包含多行代碼仍是單行代碼,都應當是使用花括號
塊語句包括:
if
for
while
do...while
try...catch...finally
塊語句間隔風格推薦:
if (condition) {} //在括左圓括號以前和右圓括號以後各添加一個空格
七、case語句的連續執行問題(在switch語句中執行完一個case以後繼續執行下一個case):
switch (condition) { case "first": case "second": //代碼 break; default: //代碼 }
case連續執行能夠有意爲之,可是須要添加註釋
八、with:禁止使用
九、for
循環注意事項:儘量避免使用continue
十、for-in
循環
不只遍歷對象的實例屬性,並且遍歷從原型繼承過來的屬性
最好使用 hasOwnProperty
來爲for-in
循環過濾出實例屬性
禁止用來遍歷數組成員
十一、嚴格模式
不推薦在全局做用域內使用。若是團隊成員文件合併,可能會讓團隊其餘成員的代碼報錯
推薦函數內部,即佈局做用域內使用
十二、相等
兩個等號判斷相等,容易出現強制類型轉換
推薦使用三個等於號用來判斷相等
1三、原始包裝類型
`var name = new String('Nicholas');`
避免使用
參考資料:《編寫可維護的JavaScript》