首頁 >web前端 >js教程 >詳解基於ES6作用域和解構賦值

詳解基於ES6作用域和解構賦值

小云云
小云云原創
2017-12-28 10:29:261041瀏覽

本文為大家帶來一篇基於ES6作用域和解構賦值詳解。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

ES6 強制開啟嚴格模式

作用域

•var 宣告局部變量,for/if花括號中定義的變數在花括號外也可存取

•let 宣告的變數為區塊作用域,變數不可重複定義

•const 宣告常數,區塊作用域,宣告時必須賦值,不可修改

// const声明的k指向一个对象,k本身不可变,但对象可变

function test() {
 const k={
  a:1
 }
 k.b=3;
 
 console.log(k);
}

test()解構賦值

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

 console.log(a, b);
}
//output: 1 2 3

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

 console.log(a, b);
}
//output: 1 2 undefined

{
 let a, b, rest;
 [a, b, ...rest] = [1, 2, 3, 4, 5, 6];
 console.log(a, b, rest);
}
//output:1 2 [3, 4, 5, 6]

{
 let a, b;
 ({a, b} = {a:1, b:2})

 console.log(a ,b);
}
//output: 1 2

使用場景

變數交換

{
 let a = 1;
 let b = 2;
 [a, b] = [b, a];
 console.log(a, b);
}

取得多個函數值

{
 function f(){
  return [1, 2]
 }
 let a, b;
 [a, b] = f();
 console.log(a, b);
}

取得多個函數傳回值

{
 function f(){
  return [1, 2, 3, 4, 5]
 }
 let a, b, c;
 [a,,,b] = f();
 console.log(a, b);
}
//output: 1 4

{
 function f(){
  return [1, 2, 3, 4, 5]
 }
 let a, b, c;
 [a, ...b] = f();
 console.log(a, b);
}
//output: 1 [2, 3, 4, 5]

物件解構賦值

{
 let o={p:42, q:true};
 let {p, q, c=5} = o;

 console.log(p ,q);
}
//output: 42 true 5

取得json值

{
 let metaData={
  title: 'abc',
  test: [{
   title: 'test',
   desc: 'description'
  }]
 }
 let {title:esTitle, test:[{title:cnTitle}]} = metaData;
 console.log(esTitle, cnTitle);
}
//Output: abc test

相關推薦:

##實例詳解ES6中陣列array新增方法

實例詳解es6在react中的應用

#詳解ES6中javascript實作函數綁定及類別的事件綁定功能

以上是詳解基於ES6作用域和解構賦值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn