ES6中解構(gòu)賦值的語法及用法實(shí)例
前言
ES6 中引入了解構(gòu)賦值(Destructuring Assignment)的語法,它提供了一種方便的方式從數(shù)組或?qū)ο笾刑崛≈?,并將它們賦給變量。
1. 數(shù)組解構(gòu)賦值:
使用方括號[]來進(jìn)行數(shù)組解構(gòu)賦值??梢愿鶕?jù)數(shù)組的結(jié)構(gòu),將其中的值賦給對應(yīng)的變量。
const numbers = [1, 2, 3, 4, 5]; const [a, b, c, d, e] = numbers; console.log(a); // 輸出 1 console.log(b); // 輸出 2 console.log(c); // 輸出 3 console.log(d); // 輸出 4 console.log(e); // 輸出 5
除了基本的數(shù)組解構(gòu)賦值外,還可以使用默認(rèn)值來處理解構(gòu)時(shí)可能不存在的元素。
const numbers = [1, 2]; const [a, b, c = 3] = numbers; console.log(a); // 輸出 1 console.log(b); // 輸出 2 console.log(c); // 輸出 3
1.1 嵌套數(shù)組的解構(gòu)賦值:
當(dāng)處理嵌套的數(shù)組時(shí),可以使用多個方括號[]來表示不同層級的解構(gòu)賦值。
const nestedArray = [1, [2, [3, 4]]]; const [a, [b, [c, d]]] = nestedArray; console.log(a); // 輸出 1 console.log(b); // 輸出 2 console.log(c); // 輸出 3 console.log(d); // 輸出 4
2. 對象解構(gòu)賦值:
使用花括號{}來進(jìn)行對象解構(gòu)賦值??梢愿鶕?jù)對象的屬性,將對應(yīng)的值賦給變量。
const person = {
name: 'Alice',
age: 30,
city: 'New York'
};
const { name, age, city } = person;
console.log(name); // 輸出 'Alice'
console.log(age); // 輸出 30
console.log(city); // 輸出 'New York'對象解構(gòu)賦值也支持默認(rèn)值的設(shè)置。
const person = {
name: 'Alice',
age: 30
};
const { name, age, city = 'New York' } = person;
console.log(name); // 輸出 'Alice'
console.log(age); // 輸出 30
console.log(city); // 輸出 'New York'
2.1 嵌套對象的解構(gòu)賦值:
當(dāng)處理嵌套的對象時(shí),可以使用多個花括號{}來表示不同層級的解構(gòu)賦值。
const nestedObject = {
prop1: 'value1',
prop2: {
nestedProp1: 'value2',
nestedProp2: {
deeplyNestedProp: 'value3'
}
}
};
const { prop1, prop2: { nestedProp1, nestedProp2: { deeplyNestedProp } } } = nestedObject;
console.log(prop1); // 輸出 'value1'
console.log(nestedProp1); // 輸出 'value2'
console.log(deeplyNestedProp); // 輸出 'value3'3. 函數(shù)參數(shù)的解構(gòu)賦值
3.1 對象解構(gòu)賦值作為函數(shù)參數(shù):
function printUserInfo({ name, age, city }) {
console.log(`Name: ${name}`);
console.log(`Age: ${age}`);
console.log(`City: ${city}`);
}
const user = {
name: 'Alice',
age: 30,
city: 'New York'
};
printUserInfo(user);
在上面的例子中,我們定義了一個 printUserInfo 函數(shù),它使用對象解構(gòu)賦值作為函數(shù)參數(shù)。函數(shù)參數(shù) { name, age, city } 指定了我們希望從傳遞的對象中提取的屬性。當(dāng)我們調(diào)用 printUserInfo 函數(shù)時(shí),直接傳遞了一個對象參數(shù) user,函數(shù)內(nèi)部會根據(jù)解構(gòu)賦值語法從對象中提取相應(yīng)屬性的值并打印出來。
3.2 數(shù)組解構(gòu)賦值作為函數(shù)參數(shù):
function sum([a, b, c]) {
console.log(a + b + c);
}
const numbers = [1, 2, 3];
sum(numbers);
在上面的例子中,我們定義了一個 sum 函數(shù),它使用數(shù)組解構(gòu)賦值作為函數(shù)參數(shù)。函數(shù)參數(shù) [a, b, c] 指定了我們希望從傳遞的數(shù)組中提取的元素。當(dāng)我們調(diào)用 sum 函數(shù)時(shí),直接傳遞了一個數(shù)組參數(shù) numbers,函數(shù)內(nèi)部會根據(jù)解構(gòu)賦值語法從數(shù)組中提取相應(yīng)元素的值并計(jì)算它們的和。
附:其他解構(gòu)
1. 字符串
- 字符串會被轉(zhuǎn)換成了一個類似數(shù)組的對象。
let [a, b, c] = 'ES6'; console.log(a, b, c) // E S 6
- 字符串的
length屬性也能進(jìn)行解構(gòu)賦值
let {length : l} = 'ES6';
console.log(l) // 3
3. 其他數(shù)據(jù)類型
- 當(dāng)?shù)忍栕筮厼閷ο?,右邊?nbsp;數(shù)值、布爾值、undefined和null時(shí)
let {a1: b1} = 666;
console.log(b1); // undefined
let {a2: b2} = true;
console.log(b2); // undefined
let {a3: b3} = undefined;
console.log(b3); // 報(bào)錯
let {a4: b4} = null;
console.log(b4); // 報(bào)錯總結(jié)
到此這篇關(guān)于ES6中解構(gòu)賦值的語法及用法的文章就介紹到這了,更多相關(guān)ES6解構(gòu)賦值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
常用js,css文件統(tǒng)一加載方法(推薦) 并在加載之后調(diào)用回調(diào)函數(shù)
下面小編就為大家?guī)硪黄S胘s,css文件統(tǒng)一加載方法(推薦) 并在加載之后調(diào)用回調(diào)函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
JavaScript設(shè)計(jì)模式之外觀模式實(shí)例
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之外觀模式實(shí)例,本文用一些代碼實(shí)例來講解JavaScript中的外觀模式,需要的朋友可以參考下2014-10-10
JavaScript遍歷table表格中的某行某列并打印其值
這篇文章主要介紹了JavaScript遍歷table表格中的某行某列并打印其值,需要的朋友可以參考下2014-07-07
詳解JavaScript的計(jì)時(shí)器和按鈕效果設(shè)置
這篇文章主要為大家介紹了JavaScript的計(jì)時(shí)器和按鈕效果設(shè)置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12
百度地圖API之百度地圖退拽標(biāo)記點(diǎn)獲取經(jīng)緯度的實(shí)現(xiàn)代碼
這篇文章主要介紹了百度地圖API之百度地圖退拽標(biāo)記點(diǎn)獲取經(jīng)緯度的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-01-01
微信小程序的宿主環(huán)境實(shí)現(xiàn)代碼
這篇文章主要介紹了微信小程序的宿主環(huán)境,包括scroll-view 組件的基本使用,text 組件的基本使用及rich-text 組件的基本使用,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10

