JS对象方法总结

162 阅读2分钟

1.Object.is()

 用于判断两个值是否是同一个值。与'=='的区别在于不会强制转换值的类型。与'==='的区别在于判断-00、Numer.NaN和NaN的结果不一样。

image.png

2.Object.assign()

 用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。常见用于深拷贝。
 

image.png

3.Object.prototype.hasOwnProperty()、Object.hasOwn()

 hasOwnProperty()方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。Object.hasOwn()方法是es13新出用来替代hasOwnProperty()的方法

image.png

4.Object.keys()

 以数组的形式返回对象所有的key

image.png

5.Object.values()

 以数组的形式返回对象所有的value值
 

image.png

6.Object.entries()

 将对象的每个key以及其对应的value组成的数组以二维数组的形式的返回
 

image.png

7.Object.fromEntries()

 Object.entries()的逆向操作,将键值对列表转换成对象
 

image.png

8.Object.getOwnPropertyDescriptor()

 返回指定对象上一个自有属性对应的属性描述符。(自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性)
 

image.png

9.Object.getOwnPropertyDescriptors()

 返回指定对象上所有自有属性对应的属性描述符。(自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性)

image.png

10.Object.defineProperty()

 直接在一个对象上定义新的属性或修改现有属性,并返回该对象
 

image.png

11.Object.defineProperties()

 直接在一个对象上定义新的属性或修改现有属性,并返回该对象,一次修改多个字段时使用

image.png

12.Object.getOwnPropertyNames()

 返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
 

image.png

13.Object.getOwnPropertySymbols()

 返回一个给定对象自身的所有 Symbol 属性的数组

image.png

14.Object.freeze()

冻结一个对象,让其和其原型不能添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。不过只能冻结一层,如果有多层,第一层之后不会被冻结

image.png

 更改对象描述会报错

image.png

15.Object.isFrozen()

 判断一个对象是否被冻结
 

image.png