Object.is()
用于判断两个数据是否相等(基本和===是一致的,除了下面这两种情况)
- Nan和Nan 相等
- -0和+0不相等
console.log(NaN===NaN) //false
console.log(Object.is(NaN,NaN)) //true
console.log(+0===-0) //true //在内存里面存储的是不一样的(所以这个是非常怪异的)
console.log(Object.is(+0,-0)) //false
object.assign()
用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
他在会改变目标对象的值,所以用的时候一般将目标对象设置为一个空对象 例如:object。assign({},obj1,obj2)
let obj = {
a: 'a',
b: 'b'
}
let obj1 = {
c: 'c',
d: 'd'
}
console.log(Object.assign({}, obj, obj1)) //{a: "a", b: "b", c: "c", d: "d"}
console.log(obj) //{a: "a", b: "b"}
console.log(obj1) //{c: "c", d: "d"}
没有将源对象设置为空对象//
let obj = {
a: 'a',
b: 'b'
}
let obj1 = {
c: 'c',
d: 'd'
}
console.log(Object.assign(obj, obj1)) //{a: "a", b: "b", c: "c", d: "d"}
//改变了obj这个源对象
console.log(obj) //{a: "a", b: "b", c: "c", d: "d"}
console.log(obj1) //{c: "c", d: "d"}