ES6 學習 解構賦值

2022-04-30 21:06:18 字數 1457 閱讀 9857

一、陣列解構

**陣列解構,解構出來的值跟陣列下標是一一對應的,如果左邊變數多於右邊陣列,則左邊後面部分變數值為undefined,如果右邊陣列元素個數多於左邊解構變數個數,則左邊變數全都有值,且一一對應

1.簡單解構

let arr = [1, 2, 5];

let [a , b , c] = arr; // a=1, b=2, c=5

2.複雜解構

let [a, [b, [c]], d] = [1, [2, [3]], 4]; // a=1, b=2, c=3, d=4

二、物件解構

**物件解構,鍵名順序不用考慮,只要有對應的鍵名,就能獲取鍵值

1.簡單解構(新定義的變數名與鍵名相同時)

let obj = ;

let = obj; // name:'lucy', age: 18

2.簡單解構(新定義的變數名與物件鍵名不同時,冒號「:」右邊是新定義的變數名,左邊為原物件的鍵名)

let obj = ;

let = obj; //此時 username:『lucy』, userage: 18

3.複雜物件解構

let obj = , , ]

}let = obj;

// console.log(goodsstatus) // 200,

// console.log(goodsid) // 123,

// console.log(resultdata) // [, , ],

三、其他解構

1.字串長度獲取:

(1)、es5字串長度方法:string.length();

(2)、es6字串長度解構:let = string; // 此時length即為字串string的長度值

2.字串解構:將字串解構成乙個陣列,然後賦值:

let [a, b, c] = string; // 將字串中的每個字元拆分,然後像陣列一樣進行解構賦值

例如:let [a, b, c] = "hello"; // a="h", b="e", c="l"

3.函式傳參解構

let arr = [1, 2];

let obj = ;

function test()

test(arr); // a=1, b=2, 函式的引數arr此時被解析成 test([a, b]),但是有個隱患,引數是根據下標順序來的, 如果陣列有多個元素,但是我們只需要其中一些元素,那麼傳參就不行了,所有最好使用物件進行傳參

test(obj); // a=1, b=2 函式test解析成test(),此時引數a, b順序可以隨意打亂,只要物件中有鍵名a、b即可

**函式test(a, b)引數的預設值設定

在es5中,引數預設值設定一般為:a = a || 10;

es6中,可以這樣設定test(a=10, b); // 如果實參沒有傳入引數a時,啟用引數a的預設值,此時引數a=10

ES6學習 解構賦值

解構賦值是對賦值運算子的擴充套件,是一種針對陣列或物件進行模式匹配,對其中變數進行賦值。解構源 解構賦值表示式的右邊部分 解構的目標 解構賦值表示式的左邊部分 注意 左右兩邊,結構格式要保持一致 陣列 let arr 1 2,3 let a,b,c arr console.log a,b,c 1 2...

ES6 解構賦值

陣列的解構賦值 let a,b 12,13 let a,b,c d 13,15,16 let a,b c 78,12 23 let x,y 1,3,5 x 1,y 3 let x,y,z a x a,y undefined z let h,b 1,2,3,4 1,2,3,4 預設值 let x tr...

ES6解構賦值

一 基本用法 解構 destructuring 按照一定的模式,從陣列或者物件中提取值,對變數進行賦值。let par1,par2,par3 1,2 console.log par1,par2,par3 1 2 不完全解構時par3對值為undefined 解構賦值允許指定變數對預設值。let pa...