ES6之解構(gòu)賦值

解構(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ù)設值:
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
歡迎你的到來 ~ ~ ???

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. const const用來聲明常量,一旦聲明必須立即初始化,否則報錯.作用域與let相同,只在聲明所在的塊級...
    BubbleM閱讀 223評論 0 0
  • 關(guān)鍵詞:解構(gòu)賦值 我們之前聲明變量怎么聲明? 這樣如果聲明太多變量會很麻煩,es6給我們提供了一種清新脫俗的方法:...
    ferrint閱讀 808評論 0 0
  • 《ijs》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,647評論 0 7
  • 1.數(shù)組的解構(gòu)賦值 2.對象的解構(gòu)賦值 3.字符串的解構(gòu)賦值 4.數(shù)值和布爾值的解構(gòu)賦值 5.函數(shù)參數(shù)的解構(gòu)賦值 ...
    卞卞村長L閱讀 952評論 0 0
  • 基本用法 ES6 允許按照一定模式,從數(shù)組和對象中提取值,對變量進行賦值,這被稱為解構(gòu)(Destructuring...
    嘉奇呦_nice閱讀 831評論 0 2

友情鏈接更多精彩內(nèi)容