在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]]
网友评论