19 個常用的 JavaScript 簡寫方法

發表於2018-01-11

1.三元操作符

當想寫if…else語句時,使用三元操作符來代替。

簡寫:
const answer = x > 10 ? 'is greater' : 'is lesser';

也可以巢狀if語句:
const big = x > 10 ? " greater 10" : x

2.短路求值簡寫方式

當給一個變數分配另一個值時,想確定源始值不是null,undefined或空值。可以寫撰寫一個多重條件的if語句。

或者可以使用短路求值方法:
const variable2 = variable1 || 'new';

3.宣告變數簡寫方法

簡寫方法:
let x, y, z=3;

4.if存在條件簡寫方法

if (likeJavaScript === true)

簡寫:
if (likeJavaScript)

只有likeJavaScript是真值時,二者語句才相等

如果判斷值不是真值,則可以這樣:

簡寫:

5.JavaScript迴圈簡寫方法

for (let i = 0; i

簡寫:
for (let index in allImgs)
也可以使用Array.forEach:

6.短路評價

給一個變數分配的值是通過判斷其值是否為null或undefined,則可以:

簡寫:
const dbHost = process.env.DB_HOST || 'localhost';

7.十進位制指數

當需要寫數字帶有很多零時(如10000000),可以採用指數(1e7)來代替這個數字:
for (let i = 0; i
簡寫:

8.物件屬性簡寫

如果屬性名與key名相同,則可以採用ES6的方法:
const obj = { x:x, y:y };

簡寫:
const obj = { x, y };

9.箭頭函式簡寫

傳統函式編寫方法很容易讓人理解和編寫,但是當巢狀在另一個函式中,則這些優勢就蕩然無存。

簡寫:

10.隱式返回值簡寫

經常使用return語句來返回函式最終結果,一個單獨語句的箭頭函式能隱式返回其值(函式必須省略{}為了省略return關鍵字)

為返回多行語句(例如物件字面表示式),則需要使用()包圍函式體。

簡寫:

11.預設引數值

為了給函式中引數傳遞預設值,通常使用if語句來編寫,但是使用ES6定義預設值,則會很簡潔:

簡寫:

12.模板字串

傳統的JavaScript語言,輸出模板通常是這樣寫的。

ES6可以使用反引號和${}簡寫:

13.解構賦值簡寫方法

在web框架中,經常需要從元件和API之間來回傳遞陣列或物件字面形式的資料,然後需要解構它

簡寫:

也可以分配變數名:

14.多行字串簡寫

需要輸出多行字串,需要使用+來拼接:

使用反引號,則可以達到簡寫作用:

15.擴充套件運算子簡寫

擴充套件運算子有幾種用例讓JavaScript程式碼更加有效使用,可以用來代替某個陣列函式。

簡寫:

不像concat()函式,可以使用擴充套件運算子來在一個陣列中任意處插入另一個陣列。

也可以使用擴充套件運算子解構:

16.強制引數簡寫

JavaScript中如果沒有向函式引數傳遞值,則引數為undefined。為了增強引數賦值,可以使用if語句來丟擲異常,或使用強制引數簡寫方法。

簡寫:

17.Array.find簡寫

想從陣列中查詢某個值,則需要迴圈。在ES6中,find()函式能實現同樣效果。

簡寫:

18.Object[key]簡寫

考慮一個驗證函式

假設當需要不同域和規則來驗證,能否編寫一個通用函式在執行時確認?

現在可以有適用於各種情況的驗證函式,不需要為了每個而編寫自定義驗證函式了

19.雙重非位運算簡寫

有一個有效用例用於雙重非運算操作符。可以用來代替Math.floor(),其優勢在於執行更快,可以閱讀此文章瞭解更多位運算。
Math.floor(4.9) === 4 //true

簡寫:
~~4.9 === 4 //true

本文翻譯於SitePoint:https://www.sitepoint.com/sho…

相關文章