变量的解构赋值

2018/1/9 posted in  ECMA6

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

数组解构和对象解构在业务开发中有很大的用处可以多思考一种代码的实现方式。

    function add([x, y]){
      return x + y;
    }    
    add([1, 2]); // 3    
  
    //参数x的默认值0, y的默认值是0 然后整个参数的默认值是{}
    //function move({x = 0, y = 0} = {})  参数是一个对象
    function move({x = 0, y = 0} = {}) {
      return [x, y];
    }
    
    move({x: 3, y: 8}); // [3, 8]
    move({x: 3}); // [3, 0]
    move({}); // [0, 0]
    move(); // [0, 0]
    
    //参数{x,y}的默认值是{x:0,y:0}
    //function move({x, y} = { x: 0, y: 0 }) {
    function move({x, y} = { x: 0, y: 0 }) {
      return [x, y];
    }
    
    move({x: 3, y: 8}); // [3, 8]
    move({x: 3}); // [3, undefined]
    move({}); // [undefined, undefined]
    move(); // [0, 0]
    
    //加载模块
    const { SourceMapConsumer, SourceNode } = require("source-map");
    //提取 JSON 数据
    let jsonData = {
      id: 42,
      status: "OK",
      data: [867, 5309]
    };
    
    let { id, status, data: number } = jsonData;   
    console.log(id, status, number);
    let { log, sin, cos } = Math;