对象检测方法
- obj.hasOwnProperty(prop)返回boolean,prop:要检测的属性的 String 字符串形式表示的名称,或者 Symbol。指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)
- prototypeObj.isPrototypeOf(object)返回boolean,测试引用对象是否存在于参数对象的原型链,与instanceof不同,object instanceof AFunction中,object 的原型链是针对 AFunction.prototype 进行检查的
- obj.propertyIsEnumerable(prop)返回boolean,检测对象指定的属性是否可枚举
- Object.is(value1, value2)返回boolean,判断两个值是否是相同的值,不会隐式转换
- Object.isExtensible(obj)返回boolean,判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)
- Object.isFrozen(obj)返回boolean,判断一个对象是否被冻结
- Object.isSealed(obj)返回boolean,判断对象是否被密封(不可扩展 ,且所有自身属性都不可配置且因此不可删除(但不一定是不可写)的对象
对象属性查看方法
- Object.values(obj)返回对象的所有可枚举属性值的数组,值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )
- Object.keys(obj)返回对的所有可枚举属性的字符串数组,排列顺序和 for...in 循环遍历时顺序一致
- Object.entries(obj)返回给定对象自身可枚举属性的键值对数组,其排列与 for...in 循环遍
- Object.fromEntries(iterable)返回一个由该迭代对象条目提供对应属性的新对象,把键值对列表转换为一个对象,参数:可迭代对象,类似 Array 、Map 历时返回的顺序一致(区别于 for-in 循环还会枚举原型链中的属性),浅拷贝
- obj.toString()返回表示该对象的字符串,[object Object]
- object.valueOf()返回该对象的原始值,见底部表
- obj.toLocaleString()返回对象的字符串表示,方法被用于派生对象为了特定语言环境的目的(locale-specific purposes)而重载使用
- Object.getOwnPropertyDescriptor(obj, prop)返回指定属性描述对象,返回指定对象上的一个自有属性对应的属性描述符,prop目标对象的属性名
- Object.getOwnPropertyDescriptors(obj)返回对象的所有自身属性描述符,用来获取一个对象的所有自身属性的描述符
- Object.getOwnPropertyNames(obj)返回对象的所有属性名字符串组成的数组,返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组
- Object.getOwnPropertySymbols(obj)返回对象所有Symbol属性的数组
- Object.getPrototypeOf(object)返回对象的原型,返回指定对象的原型(内部[[Prototype]]属性的值),没有则null
对象属性操作方法
- Object.assign(target, ...sources)返回目标对象,用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象,浅拷贝
- Object.create(proto[,propertiesObject])返回新对象,带有指定原型对象和属性,参数1:新对象的原型,参数2:要定义其可枚举属性或修改的属性描述符的对象
- Object.setPrototypeOf(obj, prototype)返回这个对象,设置一个指定的对象的原型 ( 即, 内部[[Prototype]]属性)到另一个对象或 null
- Object.preventExtensions(obj)返回不可扩展对象,让对象变的不可扩展,也就是永远不能再添加新属性
- Object.freeze(obj)返回冻结的对象,冻结一个对象。一个被冻结的对象再也不能被修改
- Object.seal(obj)返回被密封的对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要原来是可写的就可以改变
- Object.defineProperties(obj, props)返回参数对象本身,在一个对象上定义新的属性或修改现有属性,并返回该对象,参数2:要定义其可枚举属性或修改的属性描述符的对象
- Object.defineProperty(obj, prop, descriptor)返回参数对象,参数2:定义或修改的属性名,参数3:对应的属性描述符。直接在一个对象上定义一个新属性,或者修改一个对象的现有属性
对象原型方法
- obj.hasOwnProperty()
- prototypeObj.isPrototypeOf()
- obj.propertyIsEnumerable()
- obj.toLocaleString()
- obj.toString()
- object.valueOf()