1.属性简写
var a = 1;var b = 2;var c = 3;var d = {a,b,c}
2.属性表达式
var obj = {["test"+"data"]:[1,2,3]}obj{testdata: Array(3)}testdata: (3) [1, 2, 3]__proto__: Object
3.对象扩展运算符
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };x // 1y // 2z // { a: 3, b: 4 }
4.object.fromEntriesObject.fromEntries()方法是Object.entries()的逆操作,用于将一个键值对数组转为对象。
Object.fromEntries([['foo', 'bar'],['baz', 42]])// { 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
