js 代碼命名規範系列

在微博上看到一個段子git

「老子哪天出任ceo迎娶白富美走上人生巔峯以後,必定要僱兩個長腿大熊的妹子。一個幫我想變量名字,一個幫我想git commit的message!」正則表達式

 

能夠看出 命名方方面面的問題困擾着我這樣的人。哈哈哈數組

 

函數命名、變量命名等 是頻繁困擾個人問題。app

 

函數命名:統一使用動詞或者動詞+名詞形式 ---- fnInit()dom

若是有內部函數則「_」開頭   _fnInit().函數

對象方法命名使用fn+對象類名+動詞+名詞形式   fnAnimateDoRun() ui

某事件響應函數命名方式爲fn+觸發事件對象名+事件名或者模塊名  fnDivClick()編碼

經常使用的動詞列表:加密

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 彙集spa

  

變量命名:

一些算是默認的規範就不說了 (常量大寫,循環變量簡寫,駝峯式等)

對於變量命名 仍是沒有一個規範,下面貼出一個別人的規範僅供參考。

按照類型規劃:

s:表示字符串。例如:sName,sHtml;
n:表示數字。例如:nPage,nTotal;
b:表示邏輯。例如:bChecked,bHasLogin;
a:表示數組。例如:aList,aGroup;
r:表示正則表達式。例如:rDomain,rEmail;
f:表示函數。例如:fGetHtml,fInit;
o:表示以上未涉及到的其餘對象,例如:oButton,oDate;
g:表示全局變量,例如:gUserName,gLoginTime;

  

按照前綴區分 :

$:表示Jquery對象。例如:$Content,$Module;一種比較普遍的Jquery對象變量命名規範。j:表示Jquery對象。例如:jContent, jModule;另外一種Jquery對象變量命名方式。fn:表示函數。例如:fnGetName,fnSetAge;和上面函數的前綴略有不一樣,改用fn來代替,我的認爲fn可以更好的區分普通變量和函數變量。dom:表示Dom對象,例如:domForm,domInput;項目中不少地方會用到原生的Dom方法及屬性,能夠根據團隊須要適當修改。

相關文章
相關標籤/搜索