本文共 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/