解構(gòu)賦值
傳統(tǒng)的定義多個變量:
var a = 1;
var b = 2;
var c = 3;
Es6中為了簡單問題簡單化,出現(xiàn)了解構(gòu)賦值這一方法侵贵,比如上邊的變量可以這樣定義:
var [a, b, c] = [1, 2, 3];
console.log(a, b, c); // 1 2 3
可以看到真朗,把變量充當數(shù)組元素進行定義介却,一步到位的定義了多個變量臼闻。
- 左邊變量的數(shù)組中支持空值占位
var [a, , b] = [1, 2, 3];
console.log(a, b); // 1 3
- 也支持指定默認值有巧,下邊b給了默認值2
var [a, b=2, c] = [1, , 5];
console.log(a, b, c); // 1 2 5
- 解構(gòu)賦值可以進行嵌套
var [a, [b, c]] = [1, [2, 3]];
console.log(a, b, c); // 1 2 3
在數(shù)組中可以嵌套另一個數(shù)組進行賦值鹉胖。
- 賦值不成功時所宰,變量值為undefined
var [a, b, c] = [1, 2];
console.log(a, b, c); // 1 2 undefined
以上是數(shù)組的解構(gòu)賦值绒尊,定義對象也可以使用解構(gòu)賦值。
也可以通過對象進行解構(gòu)賦值:
var {name, age} = {name:'zzq', age:12};
console.log(name, age); // zzq 12
其它特點也都和上邊相同仔粥。
用途
- 第一個用處是在交換兩個變量的值
通常交換變量值都是通過第三個暫時變量進行交換婴谱,有了解構(gòu)賦值以后就變得簡單多了。
var x = 1, y = 2;
[x, y] = [y, x];
console.log(x, y); // 2 1
- 第二個用途是簡化了函數(shù)參數(shù)的默認值
以往我們?yōu)榱吮WC傳進函數(shù)的參數(shù)值不為空躯泰,都會在函數(shù)體內(nèi)為參數(shù)設(shè)值:
function sum(a,b){
a = a || 0; //如果a沒有傳值谭羔,則為0
b = b || 0;
return a + b;
}
var res = sum();
console.log(res); // 0
有了解構(gòu)賦值以后,也簡化了很多:
function sum(a=0, b=0){
return a + b;
}
var res = sum(1);
console.log(res); // 1
當給參數(shù)傳值時麦向,則按照傳的值計算口糕,如果沒有傳值,則使用給定的默認值磕蛇,是不是簡單了很多呢?
最后十办,跟大家分享一下我的個人博客地址:http://javascript404.com
歡迎你的到來 ~ ~ ???