回覆列表
  • 1 # Fuwin666

    今天翻了翻一年多前寫的程式碼,感覺當年年輕的自己寫下的程式碼真是圖樣啊(然而現在也沒好到哪裡去)。近期看了好多函數語言程式設計以及設計模式的書和文章,於是想分享一些讓JS程式碼更優雅的小技巧。

    1.善用函數語言程式設計

    2.lodash裡一些很好用的東西(lodash是一個著名的JS工具庫,裡面存在眾多函式式的方法和介面,在專案中引入可以簡化很多冗餘的邏輯。)

  • 2 # Java架構達人

    筆者以前寫Javascript的時候,經常會把程式碼寫的又臭又長又囉嗦。

    在經過一段實踐的實踐和反思後,程式碼的優雅性應該提高很多。所以個人就總結了寫出優雅Javascript程式碼的心得。

    不寫分號

    不寫分號能顯著讓程式碼更加優雅,並少輕鬆你的雙手。可能很多人會有疑問,沒有分號的Javascript也能正常執行?幾乎是的。不過在一些特殊的時候Javascript引擎並不會幫助你正確插入分號。具體的情況只有這五個符號:, ,, , 沒了。也就是說,凡是新的一行程式碼以上述五個符號開頭,那麼之前一句的末尾是需要分號的。而在實際情況中,以+,- 開頭的新一行程式碼幾乎不可能出現。所以可能情況:

    如果之前沒加分號,那麼這個匿名函式外的括號會呼叫上一行定義的函式,匿名函式就變成了引數。記住下面的這個分號

    還有比如這樣

    除了上面例子,幾乎沒有其他情景需要加分號了。所以經常遇到這種情況,一個javascript檔案裡幾百個分號全是沒必要的。而且,通常在生產環境中會提前用uglify.js去壓縮程式碼,或是用ES6時babel轉碼,這都會幫你補全分號。所以還有什麼理由去寫分號呢?當然寫不寫分號也屬於個人習慣,知道什麼時候分號是不可省的才是重點。PS:Vue.js的原始碼就是不寫分號的。

    使用ES6

    相比較ES5,ES6的語法中的結構賦值,箭頭函式,模板字串,物件的簡寫法等都能讓程式碼變得乾淨利落。比如一個判斷奇偶的函式

    ES6:

    比如字串拼接

    ES6:

    一些優雅的寫法

    邏輯運算子

    初始化變數

    三元運算子

    合理的命名

    具體來說有這樣幾點:

    方法名以動詞開頭,比如 布林值以is開頭,駝峰大小寫和下劃線不要混用,比如和下劃線只有在私有物件屬性時使用方法內部變數儘可能短變數宣告

    變數宣告儘可能的放在開頭,這樣有助於:

    提供一個單一地址查詢到函式所有需要的區域性變數防止因宣告提升所引發的邏輯錯誤幫助牢記要宣告的變數,儘可能地少適用全域性變數

    使用逗號隔開換行,而非每一行重新

    有的時候也可以把逗號寫在開頭,這樣比較方便加入新的變數

    對齊方式

    實際上用var的時候是可以用逗號的。所以在ES6中更經常出現的情況:

    縮短常用方法名避免超長程式碼

    如果程式碼長到底部的捲軸都出現了,如何算得上優雅呢。所以要保持每一行的程式碼不要太長,具體有這樣需要注意的地方:

    內部不重要的過程性程式碼儘可能短,但至少保留語義如果用到鏈式語法,可在 " . "的開頭換行

    可以改成

    字串拼接時,用加號換行,或用ES6的模板字串如果因為邏輯運算子兒導致過長,可以將邏輯運算子換行如果函式引數過長,可以將引數換行,也是沒問題的儘可能避免巢狀過多的語句如果還是很長,可以嘗試2個空格縮排其他細節程式碼不同功能區之間加空行,比如每個funtion之間對於陣列或類陣列,可以用map等函式替代for迴圈如 號的運算子之間加空格若多次引用同一外部物件的屬性,則定義到方法內部

  • 中秋節和大豐收的關聯?
  • 為什麼下午睡覺經常會口渴到被嗆醒了?