1.属性简写

    1. var a = 1;
    2. var b = 2;
    3. var c = 3;
    4. var d = {
    5. a,b,c
    6. }

    2.属性表达式

    1. var obj = {
    2. ["test"+"data"]:[1,2,3]
    3. }
    4. obj
    5. {testdata: Array(3)}
    6. testdata: (3) [1, 2, 3]
    7. __proto__: Object

    3.对象扩展运算符

    1. let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
    2. x // 1
    3. y // 2
    4. z // { a: 3, b: 4 }

    4.object.fromEntries
    Object.fromEntries()方法是Object.entries()的逆操作,用于将一个键值对数组转为对象。

    1. Object.fromEntries([
    2. ['foo', 'bar'],
    3. ['baz', 42]
    4. ])
    5. // { foo: "bar", baz: 42 }

    该方法的主要目的,是将键值对的数据结构还原为对象,因此特别适合将 Map 结构转为对象。

    // 例一
    const entries = new Map([
      ['foo', 'bar'],
      ['baz', 42]
    ]);
    Object.fromEntries(entries)
    // { foo: "bar", baz: 42 }
    // 例二
    const map = new Map().set('foo', true).set('bar', false);
    Object.fromEntries(map)
    // { foo: true, bar: false }
    

    该方法的一个用处是配合URLSearchParams对象,将查询字符串转为对象。

    Object.fromEntries(new URLSearchParams('foo=bar&baz=qux'))
    // { foo: "bar", baz: "qux" }
    

    5.object.is

    Object.is('foo', 'foo')
    // true
    Object.is({}, {})
    

    6.object.keys

    var obj = { foo: 'bar', baz: 42 };
    Object.keys(obj)
    // ["foo", "baz"]
    

    7.object.values

    const obj = { foo: 'bar', baz: 42 };
    Object.values(obj)
    // ["bar", 42]
    

    8.object.entries

    const obj = { foo: 'bar', baz: 42 };
    var b = Object.entries(obj)
    // [ ["foo", "bar"], ["baz", 42] ]
    
    (2) [Array(2), Array(2)]
    Object.fromEntries(b)
    {a: 1, b: 2}
    

    参考http://es6.ruanyifeng.com/#docs/object-methods#Object-fromEntries