做者:Milos Proticjavascript
譯者:前端小智html
來源:blog.risingstack前端
阿里雲最近在作活動,低至2折,真心以爲很划算了,能夠點擊本條內容或者連接進行參與: promotion.aliyun.com/ntms/yunpar…java
騰訊雲最近在作活動,百款雲產品低至 1 折,能夠點擊本條內容或者連接進行參與node
爲了保證的可讀性,本文采用意譯而非直譯。git
若是我們關注代碼自己結構及可讀笥,而不是隻關心它是否能工做,那麼我們寫代碼是有必定的水準。專業開發人員將爲將來的本身和「其餘人」編寫代碼,而不只僅只編寫能應付當前工做的代碼。github
在此基礎上,可讀性高的代碼能夠定義爲自解釋的、易於人理解的、易於更改或擴展的代碼。微信
如下列表一些好編寫方式,僅供參考,固然,若是你有更好的方式,歡迎留言。函數
如下的方式只是提供一種角度,不表明就須要這樣作,請勿擡扛工具
用===
代替 ==
使用長而具備描述性的名稱,考慮到函數表示某種行爲,函數名稱應該是動詞或短語,用以說明其背後的意圖以及參數的意圖。 函數的名字應該說明他們作了什麼。
避免使用大量參數,理想狀況下,函數應該指定兩個或更少的參數。 參數越少,測試函數就越容易,參數多的狀況可使用對象。
使用默認參數替代 ||
操做
一個函數應該只作一件事,不要在一個函數中執行多個操做
使用Object.assign
設置對象默認值
不要使用標誌做爲參數,由於它們告訴函數作的比它應該作的多
不要污染全局變量,若是須要擴展示有對象,請使用ES6
類和繼承,而不是在原生對象的原型鏈上建立函數
避免使用反面條件
使用條件簡寫,僅對布爾值使用此方法,而且若是確信該值不會是undefined
或null
的,則使用此方法
儘量避免條件句,而是使用多態性和繼承
class
是 JS 中新的語法糖,工做方式就像之前的原型但比原型的方式更簡單易懂
使用連接,許多庫(如jQuery
和Lodash
)都使用這種模式。在類中,只需在每一個函數的末尾返回this
就能夠將更多的該類方法連接到它上。
這只是改進代碼的一小部分。通常生活入,這裏所說的原則是人們一般不遵照的原則。他們嘗試着去作,但出於各類緣由,就沒有堅持下去。也許在項目開始時,代碼是簡潔的,可是當要在截止日期前完成時,這些原則經常被忽略,並被轉移到「TODO」或「REFACTOR」部分。在這一點上,你的客戶更但願您在最後期限以前完成任務,而不是編寫簡潔的代碼。
編輯中可能存在的bug無法實時知道,過後爲了解決這些bug,花了大量的時間進行log 調試,這邊順便給你們推薦一個好用的BUG監控工具 Fundebug。
原文:blog.risingstack.com/javascript-…
乾貨系列文章彙總以下,以爲不錯點個Star,歡迎 加羣 互相學習。
由於篇幅的限制,今天的分享只到這裏。若是你們想了解更多的內容的話,能夠去掃一掃每篇文章最下面的二維碼,而後關注我們的微信公衆號,瞭解更多的資訊和有價值的內容。
每次整理文章,通常都到2點才睡覺,一週4次左右,挺苦的,還望支持,給點鼓勵