es6 解構賦值 的幾個注意點

2021-09-01 19:38:50 字數 1084 閱讀 9999

1、結構不成功,變數值等於undefined

let [lzp] = ;

let [lt, lzp] = [1];

以上兩種情況屬於結構不成功, lzp 的值都是 undefined

2、如果等號的右邊不是陣列,則會報錯

// 等號右邊的都不是陣列,所以都會報錯

let [lzp] = 1;

let [lzp] = false;

let [lzp] = nan;

let [lzp] = undefined;

let [lzp] = null;

let [lzp] = {};

3、結構賦值使用預設值的時候,因為es6 的內部使用嚴格相等運算子(===),判斷乙個位置是否有值。所以,只有當乙個陣列成員嚴格等於undefined,預設值才會生效。

let [lt= 1] = [undefined];

lt // 1

let [lt = 1] = [null];

lt // null

4、解構賦值的預設值可以使用其他的變數,但是該變數必須提前被宣告

let [lt = 1, lzp = lt] = ;     // lt=1; lzp =1

let [lt = 1, lzp = lt] = [2]; // lt=2; lzp =2

let [lt = 1, lzp = lt] = [1, 2]; // lt=1; lzp =2

let [lt = lzp, lzp = 1] = ; // referenceerror: lzp is not defined

// 物件的解構賦值也是一樣的,預設值生效的條件是,物件的屬性值嚴格等於undefined

var = ;

lt // 3

var = ;

lt // null

//上面**中,屬性lt等於null,因為null與undefined不嚴格相等,所以是個有效的賦值,導致預設值22不會生效。

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