本文共 1091 字,大约阅读时间需要 3 分钟。
ES6 允许我们直接在对象中写入变量或函数作为属性名和方法名,省略了等号后面的属性值部分。这时候,属性值等于属性名所表示的变量。这种简写方式对将简洁代码书写出来非常有帮助。
var foo = 'bar';var baz = { foo }; 这里,baz 的属性 foo 的值与变量 foo 的值相同,因此 baz 被简化为 { foo: 'bar' }。
这种简写方式同样适用于方法:
var o = { method() { return 'hello AJ'; }}; 可以写成:
var o = { method: function() { return 'hello AJ'; } }; 属性名表达式法允许我们使用表达式的结果作为属性名。这种方法特别适用于动态生成属性名。
var prop = 'val';var obj = { [prop]: true, ['a' + 'bc']: 123}; 这里,obj 的属性名分别为 'val' 和 'abc',值分别为 true 和 123。
Object.is() 用于比较两个值是否严格相等。它与严格相等比较运算符 (===) 的行为基本一致,但有两个特殊情况:
-0 和 +0:Object.is(+0, -0) 返回 false,而 +0 === -0 返回 true。NaN:Object.is(NaN, NaN) 返回 true,而 NaN === NaN 返回 false。ES5 的 Object.is 方法可以通过定义一个不以环境为目标的方式部署。
Object.is(+0, -0); // falseObject.is(NaN, NaN); // true
Object.assign() 方法用于将源对象 (source) 的所有可枚举属性复制到目标对象 (target) 中。
var target = { a: 1 };var source1 = { b: 2 };var source2 = { c: 3 };Object.assign(target, source1, source2); 复制后,target 会变为 { a: 1, b: 2, c: 3 }。
如需了解更多 ES6 功能和实用技巧,可以访问以下链接:
阮一峰. 《ES6 标准入门(第 2 版)》.
转载地址:http://yizaz.baihongyu.com/