ES6的基礎相關知識

let關鍵字

  • 特性:
  1. 塊級作用域
  2. 變量聲明不提升
  3. 暫時性死區
  4. 不能重複聲明

const關鍵字

  • 特性:
  1. 塊級作用域
  2. 變量聲明不提升
  3. 暫時性死區
  4. 不能重複聲明
  5. 在聲明時初始化
  6. 不可更改值

解構 – 模式匹配

ES6 允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱爲解構(Destructuring)。

解構成功
  • 完全解構
    let [a, b, c] = [1, 2, 3];

  • 不完全解構
    let [a, b] = [1, 2, 3];

  • 解構不成功,變量的值就等於undefined
    let [a, b, c] = [1, 2];

先去判斷解構的值有無,若有,進行賦值,若無,進行默認值賦值


擴展運算符…
  • 擴展運算符可以將數據展開
  • 不能單獨使用擴展運算符展開數組,可以在參數中使用,將參數數組轉成參數列表。
  • 如果擴展運算符後面跟的是變量,那麼接受單獨多餘的數組放置到數組中。
let [a,b,c,...d] = [1,2,3,4,5,6,7];
let result = Math.max(...[1,2,3,4,5,6,7]);
console.log(...[1,2,3]);
  • rest參數----將不再推薦使用arguments
    function test(...tail){}
    test(1,2,3);

對象的解構

  • 對象的屬性沒有次序,變量必須與屬性同名
  • 使用:對屬性進行重命名
let {name:myName,age:myAge,address:myAddress="江蘇"} = {
		name:'tom',
		gender:'男',
		age:18
	}
console.log(myName,myAge,myAddress);

字符串的解構

let [a, b, c, d, e] = 'hello'; //a=h;b=e;c=l;d=l;e=o
let {length : len} = 'hello'; //len = 5

數值和布爾值的解構

let {toString:s} = 123;
console.log(s===Number.prototype.toString);//true
let {toString} = true;
console.log(toString===Boolean.prototype.toString);//true

函數參數的解構賦值

function test([a=0,b=0]){}
test([1,2])

常見用途

  • 交換變量的值:
let x=1;
let y=2;
[x,y] = [y,x];
  • 函數參數的定義
function f([x, y, z]) { ... } 
f([1, 2, 3]);
  • 從函數中返回多個值
function test(){
	return [1,2,3];
}
let [a,b,c] = test();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章