本篇文章給大家分享的是有關JavaScript的解構用法有哪些,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
解構是JavaScript中的一個強大工具。它可以從數組和對象中提取出有意義的變量,并用解構來處理JSON數據、嵌套對象或數組非常方便。
下面的示例展示了創建解構賦值表達式的最簡單的方法之一:

如果左側的解構表達式中傳遞的變量名與對象屬性不匹配,則將該值作為undefined進行分配。雖然這個例子看起來非常簡單,但它還可以通過解構語法實現更多可能。
一起去探索一些解構用例吧。
通過解構別名進行重命名
無論是在頂級對象中,還是在需要導入庫時,別名都有助于防止重名,在import語句中解構別名與解構對象不同:
import { some-func1, some-func2 } from 'some-library';//use aliasing import { some-func1 as newFunc } from 'some-library'; newFunc();import { * as some-library } from 'some-library'要提供一個與屬性名不同的解構變量,需要使用冒號語法來指定它,如下所示:
const { work: {job : profession} } = person; console.log(profession) // Blogger使用解構表達式交換變量
通常會使用一個臨時變量進行交換,示例如下(也可以通過一個數學公式和XOR運算符來做):
let a = 1; let b = 2; let temp; temp = a; a = b; b = temp;
通過解構,可以在單個表達式中輕松地交換變量,如下所示:
[a, b] = [b, a];
更有趣的一點是,解構能夠交換n個變量:
[a, b, c] = [b, c, a]
訪問嵌套屬性并設置默認值
解構也適用于嵌套對象,并有助于避免長鏈列表。示例如下:
const person = { name: 'Fred', age: 26, work: { job: 'Blogger' } };const {work: {job} } = person; console.log(job); //prints: Blogger注意,在上面的代碼中,work 引用沒有被解構,只有最后一個嵌套屬性被分配給變量—job。為了使work 也得到嵌套屬性,我們需要
const {work, work: {job} } = person;如果被解構對象中不存在鍵值,則會得到undefined 值??梢酝ㄟ^設置一個默認值來避免這種情況,如下所示:

現在考慮一下work 的屬性是否完全不可用。在這種情況下,需要用以下方式來書寫上面的解構表達式:
const { work: { job = 'NA', salary = 'NA'} = {} } = person;在解構中使用計算屬性
到目前為止,都在利用靜態鍵值進行解構。但是對于具有動態鍵值的對象,需要使用計算屬性。計算屬性用方括號指定,如下所示:
const person = { name: 'Fred', work: { job: 'Blogger' } };let name = 'name'const { [name] : username } = person; console.log(username); //Fred也可以創建屬性數組,如下所示:

訪問數組元素
就像對象解構一樣,數組解構也可以通過語法實現,如下所示:
const arr = [1,2,3]; const [a, b] = arr; //a = 1, b = 2
可以在=后面為每個解構變量設置默認值。如果有不想分配給局部變量的項目,也可以選擇跳過??梢酝ㄟ^逗號操作符來實現:
//skips the 2nd element const [first,,third] = arr;
對一個大數組使用逗號操作符可能是一項乏味的任務,我們可以使用類似語法的對象解構——通過索引訪問元素,如下所示:
const arr = ['a','b','c','d'];const {0: first, 3: fourth} = arr; console.log(fourth) //d const {0: first, 3: fourth, 9: tenth = 'z'} = arr;上一條語句中定義了一個默認值,以防數組沒有索引。也可以用訪問對象的方式來訪問嵌套數組元素:
const arr = ['a', [1, 2, 3] const [first, [one, two, three]] = arr;
使用Rest語法省略屬性
Rest語法用于挑選多個元素并將它們設置為一個新元素,這有助于解構時省略某個屬性。
const arr = ["Hello", "How" , "are","you"];var [hello,...remaining] = arr; console.log(remaining) // ["How" , "are", "you"]
上述表達式也可以用于克隆數組??梢允褂孟嗤倪壿媮頇z索或刪除嵌套對象:

解構可能看起來有些棘手,但一旦適應了,就可以利用它創建特定的模式,快速獲取所需要的東西。盡快掌握它吧!
以上就是JavaScript的解構用法有哪些,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。