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