JS編程最佳實踐

最近花了一周時間把《編寫可維護的js》 閱讀了一遍, 現(xiàn)將全書提到的JS編程最佳實踐總結如下贤惯, 已追來者啼辣!

  1. return 之后不可直接換行, 否則會導致ASI(自動分號插入機制)會在return 后插入一個分號畏腕。

  2. 一行語句最多不超過80個字符, 如果超過則應該在運算符后換行茉稠,并且追加兩個縮進描馅。

  3. 采用駝峰式命名,變量前綴為名詞如:myName 函數(shù)應該以動詞開始如:getName,常量應該以大寫字母命名而线,如:MAX_COUNT铭污, 構造函數(shù)首字母大寫。

  4. 數(shù)字的寫法: 整數(shù):count =10 小數(shù) count =10.0; 十六進制寫法0xA2 科學計數(shù)法1e23 不推薦使用八進制寫法膀篮。

  5. 如下場景應該使用null:        1. 為可能賦值為對象的變量初始化嘹狞。        2. 在函數(shù)中誓竿, 如果參數(shù)期望是對象磅网, 當做參數(shù)傳入, 返回值同理烤黍。

  6. 如下場景不應該使用null:        
    1.檢測參數(shù)是否傳入知市。        
    2.檢測未初始化的變量速蕊。

  7. null應該當做是對象的占位符嫂丙。

  8. undefine應該避免使用。

  9. 聲明對象和數(shù)組使用字面量直接量规哲。如 var arry =[1,2,3];

  10. case語句應該以break結尾跟啤。    1

  11. 禁止使用with語句唉锌。

  12. fo-in循環(huán)會遍歷對象以及對象原型的屬性隅肥,所以應該使用hasOwnProperty()來過濾掉原型屬性。如果需要遍歷原型的屬性袄简, 應該加上注釋腥放。

  13. 數(shù)組應該使用 for循環(huán) 遍歷。

  14. 盡量避免變量提升绿语。

  15. 不要使用全局的嚴格模式秃症, 盡量在函數(shù)中使用。

  16. 推薦使用 === 來比較

  17. 禁止使用eval() 和Function

  18. 禁止使用 String Name 這樣的原始包裝類型來創(chuàng)建新對象吕粹。 例如 var name = new String("name");

  19. 當需要通過JS來修改樣式時种柑, 應該操作className。推薦使用html5的方法:ele.classList.add("className");

  20. 避免使用全局變量匹耕。推薦以一下幾種方式替代:        
    1.創(chuàng)建唯一的全局對象聚请。        
    2.創(chuàng)建命名空間        
    3.以函數(shù)形式封裝起來稳其。

  21. 事件處理有兩個原則:        
    1.隔離應用邏輯        
    2.不要分發(fā)事件對象驶赏。用例:

    var myApp = {
    handlClick:function(event){
       this.show(event.clientX, event.clientY);//杜絕分發(fā)事件  對象 
    } };
    
    addListener(ele,"click, function(event){
    myApp.handlClick(event); //與應用層隔離
    }
    
  22. 避免 與null比較炸卑, 除非確實需要與null比較。應該使用typeof, typeof也不應該對null進行檢測煤傍。

  23. 檢測引用值應該使用value instanceof constructor

  24. 檢測數(shù)組使用isArry()方法

  25. 檢測屬性應該使用in 關鍵字 if("cout" in object){}; ie8以下不支持 可以使用hasOwnProperty();

  26. 配置數(shù)據(jù)應該與應用程序抽離出來矾兜, 最好形成單獨的配置文件。

  27. 多人開發(fā)項目中對于對象的處理遵循以下幾條原則:        
    1.如果不是自己創(chuàng)建的對象患久,不要修改他們椅寺, 包括:原生對象, DOM對象蒋失, BOM對象返帕, 類庫對象。
    2.已經(jīng)存在的對象篙挽,(別人創(chuàng)建的對象)荆萤, 不覆蓋方法, 不新增方法铣卡, 不刪除方法链韭。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市煮落,隨后出現(xiàn)的幾起案子敞峭,更是在濱河造成了極大的恐慌,老刑警劉巖蝉仇,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旋讹,死亡現(xiàn)場離奇詭異,居然都是意外死亡轿衔,警方通過查閱死者的電腦和手機沉迹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來害驹,“玉大人鞭呕,你說我怎么就攤上這事⊥鸸伲” “怎么了葫松?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長摘刑。 經(jīng)常有香客問我进宝,道長刻坊,這世上最難降的妖魔是什么枷恕? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮谭胚,結果婚禮上徐块,老公的妹妹穿的比我還像新娘未玻。我一直安慰自己,他們只是感情好胡控,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布扳剿。 她就那樣靜靜地躺著,像睡著了一般昼激。 火紅的嫁衣襯著肌膚如雪庇绽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天橙困,我揣著相機與錄音瞧掺,去河邊找鬼。 笑死凡傅,一個胖子當著我的面吹牛辟狈,可吹牛的內容都是我干的。 我是一名探鬼主播夏跷,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼哼转,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了槽华?” 一聲冷哼從身側響起壹蔓,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎猫态,沒想到半個月后庶溶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡懂鸵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年偏螺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匆光。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡套像,死狀恐怖,靈堂內的尸體忽然破棺而出终息,到底是詐尸還是另有隱情夺巩,我是刑警寧澤,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布周崭,位于F島的核電站柳譬,受9級特大地震影響,放射性物質發(fā)生泄漏续镇。R本人自食惡果不足惜美澳,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧制跟,春花似錦舅桩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至聊记,卻和暖如春撒妈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背排监。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工踩身, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人社露。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓挟阻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親峭弟。 傳聞我的和親對象是個殘疾皇子附鸽,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)瞒瘸,斷路器坷备,智...
    卡卡羅2017閱讀 134,719評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法情臭,內部類的語法省撑,繼承相關的語法,異常的語法俯在,線程的語...
    子非魚_t_閱讀 31,668評論 18 399
  • <a name='html'>HTML</a> Doctype作用竟秫?標準模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,498評論 1 19
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品跷乐,去做同樣的事情肥败,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,784評論 2 17
  • 感恩自己愕提,早起第二天馒稍,今天比昨天又有了進步的地方!感恩早上朋友們?yōu)槲尹c贊浅侨,讓我可以獲得免費跟讀學習英語口語的機會纽谒!...
    碧霞閱讀 63評論 0 0