天天看點

10個每個開發人員都應該知道的強大JavaScript 解構技術

10個每個開發人員都應該知道的強大JavaScript 解構技術

英文 | https://javascript.plainenglish.io/10-powerful-javascript-destructuring-techniques-every-developer-should-know-15ae06818bb6

翻譯 | 楊小愛

JavaScript 解構指派已經存在一段時間了。它提供了直接将對象和數組中的值解包為變量的機會,為我們開發人員節省了大量時間和代碼。

因為解構是如此強大和友善,我想你很難找到一個沒有使用過它的 JavaScript 開發者。但是,盡管您可能已經了解了解構的要點,但您可能還沒有充分發揮其潛力。為了幫助您從學徒到大師,這裡有 10 種方法可以提升您的解構水準。

1、忽略值

數組通常攜帶大量資料。很多時候,隻需要部分資料進行進一步處理。是以,在解構數組時,您可以有選擇地解壓縮值,忽略不需要的值。如果您希望值保持不變,隻需寫一個逗号。

10個每個開發人員都應該知道的強大JavaScript 解構技術

2、配置設定剩餘值

大多數開發人員都會知道 rest 參數。一個函數的參數以 3 個點為字首,接受無數個參數并将它們解析為一個數組。

但是你知道休息模式也可以用于解構嗎?通過在變量前加上 3 個點,您可以将所有剩餘的值解包到其中。

這适用于對象和數組解構。盡管知道對于對象的提案目前處于第 4 階段,這意味着它将正式包含在 ECMAScript 的下一次疊代中。

10個每個開發人員都應該知道的強大JavaScript 解構技術

3、組合數組和對象解構

對象和數組解構本身就很強大,但将兩者結合起來可以為您提供開發超能力。如果您面對一個裡面有對象的數組,您可以使用這種技術直接解包嵌套的對象。

10個每個開發人員都應該知道的強大JavaScript 解構技術

4、交換數組中的變量

您是否曾經需要交換數組中的兩個變量?如果是這樣,您知道這是一項繁瑣的任務。要交換到兩個變量,您需要引入一個臨時的第三個變量來存儲要交換其中的一個值。

var temp = array[index1];


array[index1] = array[index2];
array[index2] = temp;      

但是使用解構,這個臨時變量就不再需要了。可以直接交換兩個變量!

10個每個開發人員都應該知道的強大JavaScript 解構技術

5、重命名變量

每個開發人員都見過至少可以說是模棱兩可的對象鍵。鍵經常包含拼寫錯誤或與它們的值沒有明确的關系。為了克服這個問題,您可以在解構對象時設定一個新的變量名稱。解壓縮值時,隻需寫一個冒号,後跟新名稱。

10個每個開發人員都應該知道的強大JavaScript 解構技術

6、預設值

如果在編寫代碼時有一個保證,那就是您不能信任資料。值可能會意外更改,并且無法避免邊緣情況。

是以,提供預設值或回退值通常是一個好主意。解構時設定預設值非常簡單。隻需在變量名後寫一個 = 符号,并提供預設值。當數組或對象中的值未定義時——任何另一個空值都将被解包——預設值被配置設定給變量。

10個每個開發人員都應該知道的強大JavaScript 解構技術

7、解構正規表達式

正規表達式用于定位字元串中的模式。當在 javascript 中執行正規表達式 (RegExp.exec() ) 時,比對項将作為字元串數組傳回。

使用數組解構,您可以直接将 RegExp 比對解包到所需的變量。在下面的例子中,我們将一個郵件位址分解成不同的部分,并直接将它們配置設定給變量。

10個每個開發人員都應該知道的強大JavaScript 解構技術

8、嵌套解構

對象和數組并不總是平坦的。您知道您不需要單獨的解構指派來解壓值嗎?指派可以嵌套在一個子句中以直接達到所需的級别。

10個每個開發人員都應該知道的強大JavaScript 解構技術

9、動态對象鍵

假設您要解包其鍵是動态的對象。解構是不可能的,因為您不能确定鍵名的有效性嗎?

不!對象鍵可以在解構時動态配置設定,提供額外的靈活性。

10個每個開發人員都應該知道的強大JavaScript 解構技術

10、解構函數參數

在之前的所有示例中,我們将對象值解包為變量。但是如果一個對象作為函數參數提供,我們可以一起跳過這一步。函數參數可以直接解構,使值可用于函數體。

10個每個開發人員都應該知道的強大JavaScript 解構技術

總結

以上内容就是我與您分享的10個關于JavaScript的解構技術,希望對您有所幫助,也希望您在這個過程中學到了一些新東西。

最後,感謝您的閱讀,祝程式設計愉快!

10個每個開發人員都應該知道的強大JavaScript 解構技術

繼續閱讀