美文网首页
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