javascript之初識變量的解構(gòu)賦值

什么是變量的解構(gòu)(Destructuring)賦值?

ES6 允許按照一定模式,從數(shù)組和對象中提取值,對變量進行賦值,這被稱為解構(gòu)

只要等號兩邊的模式相同,左邊的變量就會被賦予對應(yīng)的值

  • 數(shù)組解構(gòu)賦值
 let [m,n]=[9,4];
 console.log(m,n); // m 9; n 4  
  • 對象解構(gòu)賦值(對象的結(jié)構(gòu)賦值,與順序無關(guān)因為變量必須與屬性同名,才能取到正確的值)
let {p,q}={q:"hello",p:"hi"};
console.log(p,q); //hi    hello

注:
1.如果解構(gòu)不成功,變量的值就等于undefined

let {p} = {q: 'a'};
p // undefined

2.解構(gòu)也可以用于嵌套結(jié)構(gòu)的對象

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

3.如果要將一個已經(jīng)聲明的變量用于解構(gòu)賦值,要在 {} 外加上 () 否則JavaScript引擎會將 {p} 理解成一個代碼塊

let p;
({p} = {p: 8});

但是在有些情況下是不能使用圓括號的:

1.變量聲明語句中,不能帶有圓括號
2.函數(shù)參數(shù)中,模式不能帶有圓括號
3.賦值語句中,不能將整個模式,或嵌套模式中的一層,放在圓括號之中

所以可以使用 () 的情況只有一種 —— 賦值語句的非模式部分,可以使用圓括號

用途

<1> 交換兩個變量的值

let a=1,b=2;
[a,b]=[b,a];     //a=2  b=1

<2>從函數(shù)返回多個值
一般要返回多個值的話,我們只能用數(shù)組存值,然后輸出,有了解構(gòu)賦值就可以提取出多個值

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

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

  • 數(shù)組的解構(gòu)賦值 基本用法 ES6允許按照一定模式,從數(shù)組和對象中提取值,對變量進行賦值,這被稱為解構(gòu)(Destru...
    呼呼哥閱讀 472評論 0 3
  • 1.數(shù)組的解構(gòu)賦值 2.對象的解構(gòu)賦值 3.字符串的解構(gòu)賦值 4.數(shù)值和布爾值的解構(gòu)賦值 5.函數(shù)參數(shù)的解構(gòu)賦值 ...
    卞卞村長L閱讀 952評論 0 0
  • 本文通過學(xué)習(xí)阮一峰的博客,外加自己的理解,整理了一下我對js變量的解構(gòu)賦值的理解。 數(shù)組的解構(gòu)賦值 對象的解構(gòu)賦值...
    宋樂怡閱讀 588評論 0 2
  • 1.數(shù)組的解構(gòu)賦值 基本用法 ES6 允許按照一定模式,從數(shù)組和對象中提取值,對變量進行賦值,這被稱為解構(gòu)(Des...
    angelwgh閱讀 551評論 0 0
  • 小嘴兒就是有小嘴兒的風(fēng)度、小嘴兒的style!你看人簡簡單單的撿幾件衣褲,再簡簡單單的排列組合一下,看見沒,一菲律...
    給你們_樂樂與開心閱讀 364評論 0 1

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