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作用域和解構賦值詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。
新聞熱點
疑難解答