初入ES6 解構

2021-09-16 11:55:26 字數 1562 閱讀 9829

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 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...