之前我們介紹JavaScript簡寫技巧的初級篇,下面給大家講解JavaScript簡寫技巧的高級篇幫助大家更加熟練的運(yùn)用 JavaScript 語言來進(jìn)行開發(fā)工作。
高級篇
1. 變量賦值
當(dāng)將一個(gè)變量的值賦給另一個(gè)變量時(shí),首先需要確保原值不是 null、未定義的或空值。
可以通過編寫一個(gè)包含多個(gè)條件的判斷語句來實(shí)現(xiàn):

或者簡寫為以下的形式:

可以將下面的代碼粘貼到 es6console 中,自己測試:

2. 默認(rèn)值賦值
如果預(yù)期參數(shù)是 null 或未定義,則不需要寫六行代碼來分配默認(rèn)值。我們可以只使用一個(gè)簡短的邏輯運(yùn)算符,只用一行代碼就能完成相同的操作。

簡寫為:

3. 對象屬性
ES6 提供了一個(gè)很簡單的辦法,來分配屬性的對象。如果屬性名與 key 名相同,則可以使用簡寫。

簡寫為:

4. 箭頭函數(shù)
經(jīng)典函數(shù)很容易讀寫,但是如果把它們嵌套在其它函數(shù)中進(jìn)行調(diào)用時(shí),整個(gè)函數(shù)就會變得有些冗長和混亂。這時(shí)候可以使用箭頭函數(shù)來簡寫:

簡寫為:

5. 隱式返回值
返回值是我們通常用來返回函數(shù)最終結(jié)果的關(guān)鍵字。只有一個(gè)語句的箭頭函數(shù),可以隱式返回結(jié)果(函數(shù)必須省略括號({ }),以便省略返回關(guān)鍵字)。
要返回多行語句(例如對象文本),需要使用()而不是{ }來包裹函數(shù)體。這樣可以確保代碼以單個(gè)語句的形式進(jìn)行求值。

簡寫為:

6. 默認(rèn)參數(shù)值
可以使用 if 語句來定義函數(shù)參數(shù)的默認(rèn)值。ES6 中規(guī)定了可以在函數(shù)聲明中定義默認(rèn)值。

簡寫為:

7. 模板字符串
過去我們習(xí)慣了使用“+”將多個(gè)變量轉(zhuǎn)換為字符串,但是有沒有更簡單的方法呢?
ES6 提供了相應(yīng)的方法,我們可以使用反引號和 $ { } 將變量合成一個(gè)字符串。

簡寫為:

8. 解構(gòu)賦值
解構(gòu)賦值是一種表達(dá)式,用于從數(shù)組或?qū)ο笾锌焖偬崛傩灾担①x給定義的變量。
在代碼簡寫方面,解構(gòu)賦值能達(dá)到很好的效果。

簡寫為:

甚至可以指定自己的變量名:

9. 展開運(yùn)算符
展開運(yùn)算符是在 ES6 中引入的,使用展開運(yùn)算符能夠讓 JavaScript 代碼更加有效和有趣。
使用展開運(yùn)算符可以替換某些數(shù)組函數(shù)。

簡寫為:

和 concat( ) 功能不同的是,用戶可以使用擴(kuò)展運(yùn)算符在任何一個(gè)數(shù)組中插入另一個(gè)數(shù)組。

也可以將展開運(yùn)算符和 ES6 解構(gòu)符號結(jié)合使用:

10. 強(qiáng)制參數(shù)
默認(rèn)情況下,如果不向函數(shù)參數(shù)傳值,那么 JavaScript 會將函數(shù)參數(shù)設(shè)置為未定義。其它一些語言則會發(fā)出警告或錯(cuò)誤。要執(zhí)行參數(shù)分配,可以使用if語句拋出未定義的錯(cuò)誤,或者可以利用“強(qiáng)制參數(shù)”。

簡寫為:

11. Array.find
如果你曾經(jīng)編寫過普通 JavaScript 中的 find 函數(shù),那么你可能使用了 for 循環(huán)。在 ES6 中,介紹了一種名為 find()的新數(shù)組函數(shù),可以實(shí)現(xiàn) for 循環(huán)的簡寫。

簡寫為:

12. Object [key]
雖然將 foo.bar 寫成 foo [‘bar’] 是一種常見的做法,但是這種做法構(gòu)成了編寫可重用代碼的基礎(chǔ)。
請考慮下面這個(gè)驗(yàn)證函數(shù)的簡化示例:

上面的函數(shù)***的完成驗(yàn)證工作。但是當(dāng)有很多表單,則需要應(yīng)用驗(yàn)證,此時(shí)會有不同的字段和規(guī)則。如果可以構(gòu)建一個(gè)在運(yùn)行時(shí)配置的通用驗(yàn)證函數(shù),會是一個(gè)好選擇。

universal validation function

現(xiàn)在有了這個(gè)驗(yàn)證函數(shù),我們就可以在所有窗體中重用,而無需為每個(gè)窗體編寫自定義驗(yàn)證函數(shù)。
13. 雙位操作符
位操作符是 JavaScript 初級教程的基本知識點(diǎn),但是我們卻不常使用位操作符。因?yàn)樵诓惶幚矶M(jìn)制的情況下,沒有人愿意使用 1 和 0。
但是雙位操作符卻有一個(gè)很實(shí)用的案例。你可以使用雙位操作符來替代 Math.floor( )。雙否定位操作符的優(yōu)勢在于它執(zhí)行相同的操作運(yùn)行速度更快。
Math.floor(4.9) === 4 //true
簡寫為:































