JavaScript 編程的本質(zhì)是編寫一個(gè)個(gè)的函數(shù)來完成任務(wù)。在函數(shù)內(nèi)部,變量和運(yùn)算符可以通過移動(dòng)操作字節(jié)來使某件事發(fā)生。
第二章 注釋
2.1 單行注釋
- 獨(dú)占一行的注釋,用來解釋下一行代碼
這行注釋之前總是有一個(gè)空行,且縮進(jìn)層級(jí)和下一行代碼保持一致。 - 在代碼行的尾部的注釋
- 代碼結(jié)束到注釋之間至少有一個(gè)縮進(jìn)。
- 注釋(包括之前的代碼部分)不應(yīng)當(dāng)超過單行最大字符數(shù)限制,如果超過了,就將這條注釋放置于當(dāng)前代碼行的上方。
- 被注釋掉的大段代碼
2.2 多行注釋
- 多行注釋前應(yīng)有一個(gè)空行,且縮進(jìn)層級(jí)和其描述的代碼保持一致。
- 星號(hào)后需要有空格
- 代碼尾部注釋不要用多行注釋格式
2.3 使用注釋
在需要讓代碼變得更清晰時(shí)添加注釋。
2.3.1 難于理解的代碼
難于理解的代碼通常都應(yīng)當(dāng)加注釋。
2.3.2 可能被誤認(rèn)為錯(cuò)誤的代碼
當(dāng)代碼看上去有錯(cuò)誤時(shí),可添加注釋提醒。
2.3.3 瀏覽器特性hack
做瀏覽器特性Hack的代碼可能隱含一些錯(cuò)誤,可添加注釋。
2.4 文檔注釋
- 所有的方法
應(yīng)當(dāng)對(duì)方法、期望的參數(shù)和可能的返回值添加注釋描述 - 所有的構(gòu)造函數(shù)
應(yīng)當(dāng)對(duì)自定義類型和期望的參數(shù)添加注釋描述 - 所有包含文檔化方法的對(duì)象
如果一個(gè)對(duì)象包含一個(gè)或多個(gè)附帶文檔注釋的方法,那么這個(gè)對(duì)象也應(yīng)當(dāng)適當(dāng)?shù)蒯槍?duì)文檔生成工具添加文檔注釋。
第三章 語句和表達(dá)式
所有的塊語句都應(yīng)當(dāng)使用花括號(hào)
- if
- for
- while
- do...while...
- try...catch...finally
for-in循環(huán)
最好使用hasOwnProperty()方法來為for-in循環(huán)過濾出實(shí)例屬性。
第四章 變量函數(shù)
4.1 變量聲明
變量聲明是通過var語句來完成的。
變量聲明提前意味著:在函數(shù)內(nèi)部任意地方定義變量和在函數(shù)頂部定義變量是完全一樣的。
- 將局部變量的定義作為函數(shù)內(nèi)第一條語句
- 合并var語句
4.2 函數(shù)聲明
函數(shù)聲明也會(huì)被JavaScript引擎提前。
- 先聲明JavaScript函數(shù)然后使用函數(shù)。
- 函數(shù)聲明應(yīng)當(dāng)在條件語句的外部使用。
4.3 函數(shù)調(diào)用間隔
在函數(shù)名和左括號(hào)之間沒有空格。
4.4 立即調(diào)用的函數(shù)
(function () {
// 函數(shù)體
}())
4.5 嚴(yán)格模式
推薦使用嚴(yán)格模式use strict
4.6 相等
JavaScript具有強(qiáng)制類型轉(zhuǎn)換機(jī)制
- 推薦使用
===和!==