ECMAScript中變量的解構賦值javascript
ES6 容許從數組和對象中提取值,對變量進行賦值。java
解構賦值的基本用法:json
一、數組的解構賦值數組
let [a, b, c]= [1,2, 3];
函數
console.log(a);//1spa
console.log(b);//2code
console.log(c);//3對象
二、對象的解構賦值token
let { foo:foo2, bar:bar2 } = {foo: "aaa",bar: "bbb" };
console.log(foo2);// "aaa"
console.log(bar2);// "bbb"接口
三、字符串的解構賦值
字符串也能夠解構賦值。字符串能夠被轉換成了一個相似數組的對象。
const [a, b, c, d, e]= 'hello';
console.log(a);//h
console.log(b);//e
console.log(c);//l
console.log(d);//l
console.log(a);//hconsole.log(e);//o
數組的對象都有一個length
屬性,所以還能夠對這個屬性解構賦值
let{length : len}= 'hello'
console.log(len)//5
4.函數的解構賦值
function add([x, y]){
return x + y;
}
console.log(add([1,6])); // 7
解構賦值的用途:
一、交換變量的值
let x=1;
ley y=2;
[x,y]=[y,x];
console.log(x);//2
console.log(y);//1
二、從函數返回多個值
function func1(){
return [1,2,3]'
}
let [a,b,c]=func1();
console.log(a);//1
console.log(b);//2
console.log(c);//3
function func2() { return{ foo:1, bar:2 } } let {foo,bar}=func2(); console.log(foo);//1 console.log(bar);//2 3.函數參數的定義
// 參數是一組有次序的值 function f([x, y, z]) { ... } f([1, 2, 3]); // 參數是一組無次序的值 function f({x, y, z}) { ... } f({z: 3, y: 2, x: 1}); 4.提早json數據 解構賦值對提取JSON對象中的數據,尤爲有用。
let jsonData = { id: 42, status: "OK", data: [867, 5309] }; let { id, status, data: number } = jsonData; console.log(id, status, number); // 42, "OK", [867, 5309] 5.遍歷Map結構 Map結構原生支持Iterator接口,配合變量的解構賦值,獲取鍵名和鍵值就很是方便。
5.遍歷Map結構 Map結構原生支持Iterator接口,配合變量的解構賦值,獲取鍵名和鍵值就很是方便。
var map = new Map(); map.set('first', 'hello'); map.set('second', 'world'); for (let [key, value] of map) { console.log(key + " is " + value); } // first is hello // second is world
若是隻想獲取鍵名,或者只想獲取鍵值,能夠寫成下面這樣。 // 獲取鍵名 for (let [key] of map) { // ... } // 獲取鍵值 for (let [,value] of map) { // ... }
// 獲取鍵名 for (let [key] of map) { // ... } // 獲取鍵值 for (let [,value] of map) { // ... }