原本对象里面的元素声明:
在ES6中,如果你的键值和键名字一样,那么就可以简写成一个,即
原本的函数声明:
现在同样可以简写成:
对象里面的函数声明不要用箭头函数
Object.is()
判断两个值是否是相同的值
参数:value1,value2
相同返回true,不同返回false
Object.is() 判断两个值是否相同。如果下列任何一项成立,则两个值相同:
两个值都是 undefined
两个值都是 null
两个值都是 true 或者都是 false
两个值是由相同个数的字符按照相同的顺序组成的字符串
两个值指向同一个对象
两个值都是数字并且
都是正零 +0
都是负零 -0
都是 NaN
都是除零和 NaN 外的其它同一个数字
这种相等性判断逻辑和传统的 == 运算符所用的不同,== 运算符会对它两边的操作数做隐式类型转换(如果它们类型不同),然后才进行相等性比较,(所以才会有类似 "" == false 为 true 的现象),但 Object.is 不会做这种类型转换。
这与===运算符也不一样。===运算符(和==运算符)将数字值-0和+0视为相等,并认为Number.NaN不等于NaN
Object.assign()
将所有可枚举属性的值从一个或多个源对象复制到目标对象,返回目标对象
Object.assign(target, ...sources)
target:目标对象
sources:源对象
如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。
Object.assign 方法只会拷贝源对象自身的并且可枚举的属性到目标对象。该方法使用源对象的[[Get]]和目标对象的[[Set]],所以它会调用相关 getter 和 setter。
和Array一样,Object也有新增的三个遍历函数
Object.keys()
Object.values()
Object.entries()
扩展运算符可以用于Object上