美文网首页
ES6对象的拓展

ES6对象的拓展

作者: 前端开发_Eric | 来源:发表于2019-07-07 23:16 被阅读0次

在es6的语法中,我们可以使用新的对象方法:

Object.is();

判断两个值是否相等。

Object.is(1,'1')//false

它与数值判断===恒等于有些类似,即不会进行隐式数据类型转换。但是他们之间也有不同的地方:

NaN===NaN//false
Object.is(NaN,NaN)//true

+0 === -0//true
Object.is(+0,-0)//false

Object.is在对于NaN数据的判断与+0、-0的判断做了修正,与===的结果是不一样的。

Object.assign()

合并一个或者多个对象属性,到一个对象上;

Object.assign(obj,obj1,obj2)

将obj1、obj2属性复制到obj上,返回obj。

需要注意的是:
1.复制的属性必须是可以被遍历到的。
2.复制是按照先左后右复制的,先复制obj1到obj上,再复制obj2到obj上。
如果后面复制的属性有与之前的属性相同的,后面的属性将会覆盖之前的属性。
3.复制为浅拷贝,如果属性为对象,那么复制的会是地址引用值。

新增的对象遍历方法:

Object.keys(要遍历的对象);返回的是全部属性名的数组;

Object.values(要遍历的对象);返回全部属性值的数组;

Object.entries(要遍历的对象);返回一个数组,数组里面包含等同于属性个数的数组元素;这每个元素数组包含两个元素;0元素为属性名称,1元素为属性值;
看下面的示例:

var obj = {
    a:11,
    b:22,
    c:33
};
console.log(Object.keys(obj));//['a','b','c']
console.log(Object.values(obj));//[11,22,33]
console.log(Object.entries(obj));//[['a',11],['b',22],['c',33]]

相关文章

网友评论

      本文标题:ES6对象的拓展

      本文链接:https://www.haomeiwen.com/subject/wdrwhctx.html