ES 6における変数解構付与の書き込みモード
3166 ワード
ES 6における変数解構付与の書き込みモード
var [a, b, c] = [1, 2, 4];
let [foo, [[baz], bar]] = [1, [[2], 3]];
let [, , third] = [1, 2, 3];
let [x, , y] = [1, 2, 3];
let [head, ...tail] = [1, 2, 3, 4];
// , undefined。
let [x1, y1, ...z] = [1];
let [x2, y2] = [1, 2, 3];
//
let [m, [k], j] = [1, [2, 3], 4];
let [x3, y3, z3] = new Set(["a", "b", "c"]);
//
let [fos = true] = [];
// ,ES6 (===)
var [ xx = 1 ] = [undefined];
// x = 1
// null, , null undefined
var [ xxx = 1 ] = [null];
// xxx = null
function fn() {
console.log("fn");
}
// , , , 。
let [ax = fn()] = [];
console.log(ax);
// ,
let [x4 = 1, y4 = x4] = [];
console.log(y4)
let [x5 = 1, y5 = x5] = [3];
console.log(y5)
let {name, age} = {name: "es6", age: "1"};
console.log(name); // es6
let {sex} = {name: "es6", age: "1"};
console.log(sex); // undefined
let { paused: state} = { paused:"paused", sex:"sex"};
console.log(state);
var obj = {"first": "aaa", "last": "lll"};
let {first:f, last: l} = obj;
console.log(f); // 1
// , , 。 , 。
var { foos: foosz, bars: bars } = { foos: "foosz", bars: "bbb" };
console.log(foosz);
//console.log(foos); error: foo is not defined
//let , 。 , , 。
let fooc;
({fooc} = {fooc: 1}); //
console.log(fooc); // 1
var objs = {
p: [
'Hello',
{ ya: 'World' }
]
};
var { p: [xa, { ya }] } = objs;
console.log(xa);
console.log(ya);
var node = {
loc: {
start: {
line: 1,
column: 5
}
}
};
var { loc: { start: { line }} } = node;
console.log(line); // 1
//loc // error: loc is undefined
//start // error: start is undefined
// , line ,loc start , 。
let {message:msg = "message"} = {};
console.log(msg);
var {xq = 3} = {xq: undefined};
xq // 3
var {xw = 3} = {xw: null};
xw // null
// , undefined。
var {food} = {bar: 'baz'};
food // undefined
// 。 , 。
const [aa, bb, cc, dd, ee] = 'hello';
console.log(aa);
// length , 。
let {length : len} = 'hello';
len // 5
// , , 。
let {toString: s} = 123;
s === Number.prototype.toString // true
let {toString: s1} = true;
s1 === Boolean.prototype.toString // true
// , , 。 undefined null , , 。
//let { prop: xn } = undefined; // TypeError
//let { prop: yn } = null; // TypeError
function add([x, y]){
return x + y;
}
add([1, 2]); // 3
function move({x = 0, y = 0} = {}) {
return [x, y];
}
move({x: 3, y: 8}); // [3, 8]
function move({x, y} = { x: 0, y: 0 }) {
return [x, y];
}
console.log(move({x: 3, y: 8})); // [3, 8]
// move , x y , 。
// , [0, 0]
// undefined 。
[1, undefined, 3].map((x = 'yes') => x);
// [ 1, 'yes', 3 ]