1 交換變量的值
let [x, y] = [y, x];
2 使函數(shù)返回多個(gè)值
函數(shù)只能返回一個(gè)值,如果要返回多個(gè)值远豺,只能將它們放在數(shù)組或?qū)ο罄锓祷丶缦椤S辛私鈽?gòu)賦值,取出這些值就非常方便了砚哆。
function example(){
return [1,2,3];
}
var [a, b, c] = example();
function example() {
return {
foo: 1,
bar: 2
}
}
var {foo, bar} = example();
3 函數(shù)參數(shù)的定義
//參數(shù)是一組有次序的值
function f([x, y, z]) { ... }
f([1,2,3])
//參數(shù)是一組無次序的值
function f({x, y, z}) { ... }
f({x:1, y:2, z:3})
4 提取JSON數(shù)據(jù)
解構(gòu)賦值對(duì)提取JSON對(duì)象中的數(shù)據(jù)独撇,尤其有用。
var jsonData = {
id: 42,
status: 'OK',
data: [867, 5309]
}
var {id, status, data: number} = jsonData;
console.log(id, status, number);
//42, OK, [867, 5309]
5 函數(shù)參數(shù)的默認(rèn)值
jQuery.ajax = function (url, {
async = true,
beforeSend = function () {},
cache = true,
....
}){};
6 遍歷Map結(jié)構(gòu)
任何部署了 Iterator 接口的對(duì)象,都可以用 for...of 循環(huán)遍歷券勺。Map 結(jié)構(gòu)原生支持 Iterator 接口,配合變量的解構(gòu)賦值灿里,獲取鍵名和鍵值就非常方便
var map = new Map();
map.set('first', 'hello');
for(let [key, value] of map){
console.log(key + 'is' + value);
}
如果只想獲取鍵名关炼,或者只想獲取鍵值,可以寫成下面這樣匣吊。
//獲取鍵名
for (let [key] of map){
}
//獲取鍵值
for(let [,value] of map){
}
7 輸入模塊的指定方法
加載模塊時(shí)儒拂,往往需要指定輸入那些方法。解構(gòu)賦值使得輸入語句非常清晰色鸳。
const { SourceMapConsumer, SourceNode } = require("source-map");
參考文獻(xiàn):http://wiki.jikexueyuan.com/project/es6/set-map.html