02月21, 2017

ECMAScript 2015 Features-c04-destructuring

ECMAScript 2015 Features

Destructuring

解构允许模式匹配。所谓的模式匹配,简单来讲只不过是同时赋值多个变量,并且可以预赋值。这种解构方式同时支持ArrayObject

特点

  • 可以同时赋值多个变量,若变量与值不匹配,则赋值为undefined
  • 变量预赋值(在形参中体现较多)

写法

数组

  • 赋值
const [a, b] = [1, 2];
const [c, , d] = [3, 4, 5];
const [e, f, g] = [6, 7];
console.log(a, b, c, d, e, f, g); //1 2 3 5 6 7 undefined
  • 预赋值
let [a = 1] = [];
console.log(a);  // 1
a = 2;
console.log(a);  // 2

Object

  • 属性赋值
function g({name: x}) {
  console.log(x);
}
g({name: 5}) // 5
  • 预赋值
function f({a, b, c = 1, d = 2}) {
  return a + b + c + d;
}
f({a: 2, b: 2}) // 7

Tips

function f(x, y, z) {
  return x + y + z;
}
f(...[1,2,3]); //6
f(...[1, 2]) //NaN
let arr = [1,2,5];
f(...arr); // 8

本文链接:https://beacelee.com/post/c04-destructuring.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。