es6允許按照一定的模式,從陣列或者物件中取值,對變數進行賦值
陣列
var a = 2;
var b = [1,2];
var c = 'thisi';
//es6 解構的物件要具有iterator介面也就是可以遍歷
var [a,b,c] = [1,2,3] //按照對應的關係進行取值
var [a,...b] = [1,2,3,4];
a = 1;
b = [2,3,4];
//如果解構不成功變數的值就是undefind;
var [a ] = ;
a = undefind;
//如果右側的數值不是陣列,就會報錯
var [a] = 1; //uncaught typeerror: false is not iterable,注意字串是可以遍歷的
=nan;
=fasle;
=null;
={}`//也可以有預設值
var [a,b = 3] = [5];//只要被賦值的變數不是嚴格===undefined;就是預設值,不包括 null
a = 5;
b = 3;
//惰性求值
function fn();
var[a =fn() ] = [2];
a //2
//變數的值可以是其他的變數,但是要已經宣告過的
var [x = 1,y =x] = ;
x//1
y//1
let [x= y,y] = //uncaught referenceerror: y is not defined
物件
//使用var const let解構賦值,右側必須有值進進行初始化,如果不是解構賦值,就正常使用
var obj =
var a = obj.a;
var b = obj.b;
var = obj; //更加的直接
a//1
b//3
var = ; //屬性的名稱要一樣,位置可以不一樣沒有的話就undefined
a//1
b//2
//也可以給已經存在的變數賦值
var a = 1;
var b = 2;
var obj =
( = obj) //外側有小括號,es6大括號是**塊,不允許出現在賦值的左側
//也可以有預設值,只有解構的值===undefined的時候有效
var = //c =23
//不同名的屬性變數
var obj = ;
var = obj
a//uncaught referenceerror: a is not defined
x//1
//巢狀的物件
var obj =
}}var } = obj;
x=
ES6 解構賦值
陣列的解構賦值 let a,b 12,13 let a,b,c d 13,15,16 let a,b c 78,12 23 let x,y 1,3,5 x 1,y 3 let x,y,z a x a,y undefined z let h,b 1,2,3,4 1,2,3,4 預設值 let x tr...
ES6解構賦值
一 基本用法 解構 destructuring 按照一定的模式,從陣列或者物件中提取值,對變數進行賦值。let par1,par2,par3 1,2 console.log par1,par2,par3 1 2 不完全解構時par3對值為undefined 解構賦值允許指定變數對預設值。let pa...
es6解構賦值
coding changes the world accumulating makes yourself 主要從三個方面講述 陣列式的解構賦值 物件式的解構賦值 函式中的解構賦值 preface 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...