JavaScript-ES6-variable 2nd

JavaScript-ES6-variable 2nd

這篇簡介JavaScript-ES6 variable destructuration default。

variable destructuration default
destructuration allow default value:

let [foo = true] = [];
foo // true

let [x, y = ‘b’] = [‘a’]; // x=’a’, y=’b’
let [x, y = ‘b’] = [‘a’, undefined]; // x=’a’, y=’b’

ES6內部使用 === 來判斷值,當array內 === undefined時才會使default value生效

let [x = 1] = [undefined];
x // 1

當assign null時,因 !=== undefined,default value不生效

let [x = 1] = [null];
x // null

這個例子因x有default value,所以f()不會執行

function f() {
console.log(‘aaa’);
}

let [x = f()] = [1];

上例等於下方code

let x;
if ([1][0] === undefined) {
x = f();
} else {
x = [1][0];
}

default value可以引用variable,但該variable必須已assign value:

let [x = 1, y = x] = []; // x=1; y=1
let [x = 1, y = x] = [2]; // x=2; y=2
let [x = 1, y = x] = [1, 2]; // x=1; y=2
let [x = y, y = 1] = []; // ReferenceError: y is not defined -> variable y 還沒assign value 就給 x 當 default value