(六)Javascript 规范
Javascript 規范
- 命名
- 代碼格式
- 字符串
- 對象聲明
- 使用 ES6,7
- 括號
- undefined 判斷
- 條件判斷和循環最多三層
- this 的轉換命名
- 慎用 console.log
- 分號
- 注釋
命名
1) 采用小寫駝峰命名 lowerCamelCase,代碼中的命名均不能以下劃線,也不能以下劃線或美元符號結束
反例: name / name / name$
2) 方法名、參數名、成員變量、局部變量都統一使用 lowerCamelCase 風格,必須遵從駝峰形式。
正例: localValue / getHttpMessage() / inputUserId
其中 method 方法命名必須是 動詞 或者 動詞+名詞 形式
正例:saveShopCarData /openShopCarInfoDialog
反例:save / open / show / go
特此說明,增刪查改,詳情統一使用如下 5 個單詞,不得使用其他(目的是為了統一各個端)
add / update / delete / detail / get
附: 函數方法常用的動詞:
get 獲取/set 設置, add 增加/remove 刪除 create 創建/destory 移除 start 啟動/stop 停止 open 打開/close 關閉, read 讀取/write 寫入 load 載入/save 保存, create 創建/destroy 銷毀 begin 開始/end 結束, backup 備份/restore 恢復 import 導入/export 導出, split 分割/merge 合并 inject 注入/extract 提取, attach 附著/detach 脫離 bind 綁定/separate 分離, view 查看/browse 瀏覽 edit 編輯/modify 修改, select 選取/mark 標記 copy 復制/paste 粘貼, undo 撤銷/redo 重做 insert 插入/delete 移除, add 加入/append 添加 clean 清理/clear 清除, index 索引/sort 排序 find 查找/search 搜索, increase 增加/decrease 減少 play 播放/pause 暫停, launch 啟動/run 運行 compile 編譯/execute 執行, debug 調試/trace 跟蹤 observe 觀察/listen 監聽, build 構建/publish 發布 input 輸入/output 輸出, encode 編碼/decode 解碼 encrypt 加密/decrypt 解密, compress 壓縮/decompress 解壓縮 pack 打包/unpack 解包, parse 解析/emit 生成 connect 連接/disconnect 斷開, send 發送/receive 接收 download 下載/upload 上傳, refresh 刷新/synchronize 同步 update 更新/revert 復原, lock 鎖定/unlock 解鎖 check out 簽出/check in 簽入, submit 提交/commit 交付 push 推/pull 拉, expand 展開/collapse 折疊 begin 起始/end 結束, start 開始/finish 完成 enter 進入/exit 退出, abort 放棄/quit 離開 obsolete 廢棄/depreciate 廢舊, collect 收集/aggregate 聚集3) 常量命名全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長。
正例: MAX_STOCK_COUNT
反例: MAX_COUNT
代碼格式
1) 使用 2 個空格進行縮進
正例:
2) 不同邏輯、不同語義、不同業務的代碼之間插入一個空行分隔開來以提升可讀性。
說明:任何情形,沒有必要插入多個空行進行隔開。
字符串
統一使用單引號(‘),不使用雙引號(“)。這在創建 HTML 字符串非常有好處:
正例:
let str = 'foo'; let testDiv = '<div id="test"></div>';反例:
let str = 'foo'; let testDiv = "<div id='test'></div>";對象聲明
1)使用字面值創建對象
正例: let user = {};
反例: let user = new Object();
2) 使用字面量來代替對象構造器
正例:
var user = {age: 0,name: 1,city: 3 };反例:
var user = new Object(); user.age = 0; user.name = 0; user.city = 0;使用 ES6,7
必須優先使用 ES6,7 中新增的語法糖和函數。這將簡化你的程序,并讓你的代碼更加靈活和可復用。
必須強制使用 ES6, ES7 的新語法,比如箭頭函數、await/async , 解構, let , for…of 等等
括號
下列關鍵字后必須有大括號(即使代碼塊的內容只有一行):if, else, for, while, do, switch, try, catch, finally, with。
正例:
if (condition) {doSomething(); }反例:
if (condition) doSomething();undefined 判斷
永遠不要直接使用 undefined 進行變量判斷;使用 typeof 和字符串’undefined’對變量進行判斷。
正例:
if (typeof person === 'undefined') {... }反例:
if (person === undefined) {... }條件判斷和循環最多三層
條件判斷能使用三目運算符和邏輯運算符解決的,就不要使用條件判斷,但是謹記不要寫太長的三目運算符。如果超過 3 層請抽成函數,并寫清楚注釋。
this 的轉換命名
對上下文 this 的引用只能使用’self’來命名
慎用 console.log
因 console.log 大量使用會有性能問題,所以在非 webpack 項目中謹慎使用 log 功能
分號
書寫過程過,每行代碼結束必須有分號;
注釋
文件頭部注釋須標明作者及修改日期。函數注釋須標明函數功能,參數及返回值;
總結
以上是生活随笔為你收集整理的(六)Javascript 规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (五)LESS 规范
- 下一篇: 对男朋友说情话的句子199个