首頁 > web前端 > js教程 > 一起再看JavaScript中的物件解構

一起再看JavaScript中的物件解構

藏色散人
發布: 2023-03-10 15:17:49
轉載
2228 人瀏覽過

解構是一個概念,分解其中一種資料類型並將其單獨的屬性分配給變量,在文章《JavaScript 解構賦值5 個常見場景和實例》中介紹過,今天再來複習一下。

基礎解構

const fullName = {
    firstName: "Quintion",
    lastName: "Tang",
};
const { firstName, lastName } = fullName; // 解构语法
console.log(firstName); // Quintion
console.log(lastName); // Tang
登入後複製

正如上面的程式碼片段中所看到的那樣,在解構語法中,分解了firstName 物件屬性並將其分配給表達式左側定義的變數。在上述場景中,物件的屬性名稱應與左側表​​達式中定義的變數相符。如果定義其他變數名稱,則取得不到想要的值,如:

const fullName = {
    firstName: "Quintion",
    lastName: "Tang",
};
const { firstName, trueName } = fullName; // 解构语法
console.log(firstName); // Quintion
console.log(trueName); // undefined
登入後複製

由於在fullName 中沒有屬性trueName ,所以它被初始化為undefined

別名解構

如果需要把物件屬性賦值給屬性名不一致的變數名,可以如下程式碼來實作:

const fullName = {
    firstName: "Quintion",
    lastName: "Tang",
};
const { firstName: trueName, lastName } = fullName; // 解构语法
console.log(trueName); // Quintion
console.log(lastName); // Tang
登入後複製

預設值解構

#在上面程式碼中有看到,物件中不存在特定屬性的解構,一般會賦值為undefined ,如果不希望是undefined ,可以為其設定預設值,如下:

const fullName = {
    firstName: "Quintion",
    lastName: "Tang",
};
const { firstName: trueName, lastName, age = 18 } = fullName; // 解构语法
console.log(trueName); // Quintion
console.log(lastName); // Tang
console.log(age); // 18
登入後複製

下面來看下存在age 屬性下的結果:

const fullName = {
    firstName: "Quintion",
    lastName: "Tang",
    age: 30,
};
const { firstName: trueName, lastName, age = 18 } = fullName; // 解构语法
console.log(trueName); // Quintion
console.log(lastName); // Tang
console.log(age); // 30
登入後複製

REST解構

如果想要從一個物件解構一個屬性,剩下的屬性結構為另一個變量,如下:

const fullName = {
    firstName: "Quintion",
    lastName: "Tang",
    age: 30,
};
const { age, ...username } = fullName; // 解构语法
console.log(username); // { firstName: 'Quintion', lastName: 'Tang' }
console.log(age); // 30
登入後複製

在上面的程式碼片段中,將username 屬性分配給了一個變量,並使用了rest 運算子(...) 將變數的其餘部屬性指派給了一個單獨的物件。

推薦學習:《JavaScript影片教學

以上是一起再看JavaScript中的物件解構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.im
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板