一、對象解構賦值 剔除
對象解構賦值可以方便地獲取對象中的部分屬性而忽略其他屬性。例如,我們定義一個對象person,包含3個屬性:name,age和gender。
const person = {
name: 'Lucy',
age: 25,
gender: 'female'
}
如果我們只需要獲取其中的name屬性,忽略其他屬性:
const { name } = person;
console.log(name); // 'Lucy'
此時,只會將對象中的name屬性進行解構,其他屬性將被忽略。這樣的操作非常方便,可以幫助我們進行代碼的精簡和簡化。
二、對象解構賦值和直接賦值
對象解構賦值和直接賦值有很大的區別。直接賦值是指將一個對象屬性的值直接賦給變量,例如:
const person = {
name: 'Lucy',
age: 25
}
const name = person.name;
const age = person.age;
console.log(name, age); // 'Lucy', 25
而對象解構賦值則可以同時獲取多個屬性的值,並將這些值賦給對應的變量,例如:
const person = {
name: 'Lucy',
age: 25
}
const { name, age } = person;
console.log(name, age); // 'Lucy', 25
可以看到,對象解構賦值可以一行代碼同時獲取多個屬性的值,並將這些值賦給對應的變量,大大簡化了代碼。
三、對象解構賦值重命名
如果我們想要將一個屬性賦給另一個變量名,可以使用“:”來進行屬性名的重命名,例如:
const person = {
name: 'Lucy',
age: 25
}
const { name: personName, age: personAge } = person;
console.log(personName, personAge); // 'Lucy', 25
在這個例子中,我們將屬性name重命名為personName,並將屬性age重命名為personAge。可以看到,在解構賦值過程中,我們使用冒號“:”進行屬性重命名,這樣可以方便地將屬性賦給指定的變量名稱。
四、對象解構賦值es6
對象解構賦值是ES6引入的新特性,使用對象解構賦值的語法,可以方便地獲取對象中的屬性,例如:
const person = {
name: 'Lucy',
age: 25
}
const { name } = person;
console.log(name); // 'Lucy'
可以看到,在ES6中,我們可以使用解構賦值的語法,方便地獲取對象中的屬性,這樣可以大大簡化代碼。
五、對象解構賦值默認值
如果我們取出一個對象的屬性時,但對象中並不存在該屬性,我們可以通過默認值參數為其設置默認值:
const person = {
name: 'Lucy',
age: 25
}
const { name, address = 'beijing' } = person;
console.log(name, address); // 'Lucy', 'beijing'
在這個例子中,我們嘗試取出person對象中的name和address屬性,由於person對象中並不存在address屬性,因此我們對其設置了默認值為’beijing’。可以看到,在輸出結果時,address屬性的值為默認值’beijing’。
六、對象的解構賦值
當我們需要獲取一個對象的屬性值時,我們可以使用對象解構賦值的語法,例如:
const person = {
name: 'Lucy',
age: 25
}
const { name, age } = person;
console.log(name, age); // 'Lucy', 25
可以看到,在對象解構賦值中,我們可以使用花括號獲取對象中的屬性值,並將其分配給變量。這些變量的名稱必須與對象中的屬性名稱匹配。
七、對象解構賦值的原理
對象的解構賦值原理基於對象解構,即:根據我們傳入參數對象的屬性名稱,在函數內部可以直接操作傳入對象的屬性,將其解構為變量。
function person({ name, age }) {
console.log(name, age);
}
const obj = {
name: 'Lucy',
age: 25
}
person(obj); // 'Lucy', 25
在這個例子中,我們定義了一個person函數,該函數參數為一個對象。我們可以使用解構賦值的語法將該對象的屬性值解構為變量,並可以直接在函數內部使用這些變量進行操作。
八、對象解構賦值另一個隊友
在解構賦值中,我們也可以使用嵌套的結構對對象進行複雜的解構操作,例如:
const person = {
name: 'Lucy',
age: 25,
address: {
province: 'Beijing',
city: 'ChaoYang'
}
}
const {
name,
address: {
province,
city
}
} = person;
console.log(name, province, city); // 'Lucy', 'Beijing', 'ChaoYang'
可以看到,在這個例子中,我們首先對person對象進行解構,其中嵌套了address屬性,我們對address屬性再次進行解構賦值為province和city兩個變量。通過這樣的方式,我們可以高效地獲取對象中嵌套的屬性。
九、對象解構賦值沒有元素會卡死
如果在對象解構賦值中,嘗試獲取一個不存在的屬性,會導致程序卡死。
const person = {
name: 'Lucy',
age: 25
}
const { address } = person;
console.log(address); // undefined
在這個例子中,我們嘗試從person對象中獲取一個不存在的屬性address,但由於該屬性不存在,因此返回undefined。在實際使用過程中,如果我們沒有判斷該屬性是否存在,就會導致程序卡死。
十、js解構賦值有什麼用
對象解構賦值是一種非常方便的方式,可以讓我們快速獲取對象中的屬性,並將其分配給變量。該語法可以簡化代碼,並提高代碼可讀性和可維護性。特別是對於ES6中新增的許多新特性,例如箭頭函數、模板字符串等,對象解構賦值語法可以在其中扮演重要的角色。
完整代碼示例:
const person = {
name: 'Lucy',
age: 25,
gender: 'female'
}
// 對象解構賦值 剔除
const { name } = person;
console.log(name); // 'Lucy'
// 對象解構賦值和直接賦值
const { name, age } = person;
console.log(name, age); // 'Lucy', 25
// 對象解構賦值重命名
const { name: personName, age: personAge } = person;
console.log(personName, personAge); // 'Lucy', 25
// 對象解構賦值es6
const { name } = person;
console.log(name); // 'Lucy'
// 對象解構賦值默認值
const { name, address = 'beijing' } = person;
console.log(name, address); // 'Lucy', 'beijing'
// 對象的解構賦值
const { name, age } = person;
console.log(name, age); // 'Lucy', 25
// 對象解構賦值的原理
function person({ name, age }) {
console.log(name, age);
}
const obj = {
name: 'Lucy',
age: 25
}
person(obj); // 'Lucy', 25
// 對象解構賦值另一個隊友
const { name, address: { province, city } } = person;
console.log(name, province, city); // 'Lucy', 'Beijing', 'ChaoYang'
// 對象解構賦值沒有元素會卡死
const { address } = person;
console.log(address); // undefined
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311019.html