We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Object是js最重要的数据结构,es6对其进行了重大升级。除了解构外,Object还提供了大量的基础方法。另外Object对象属性及其方法太常用,有些相似的方法容易使用错误,故根据MDN归类整理。注意文中重点标注的文字以及角标标注的ES发布版本。
ES5
该方法返回一个给定对象的自身可枚举属性组成的数组。
给定对象的自身可枚举属性
只列出自身的枚举属性
ES8
该方法返回一个给定对象自身的所有可枚举属性值的数组
给定对象自身的所有可枚举属性值
只列出自身的枚举属性值
该方法返回一个给定对象自身可枚举属性的键值对数组。
给定对象自身可枚举属性的键值对
只列出自身枚举的键值对数组。
Object.fromEntries()Stage 3是其逆方法,把键值对列表转换为一个对象.
Stage 3
该方法返回一个数组,该数组对元素是 obj自身拥有的枚举或不可枚举属性名称字符串
自身拥有的枚举或不可枚举属性
自身的枚举和不枚举属性都会列出
for...in语句以任意顺序遍历一个对象的可枚举属性(包括原型链上的可枚举属性)。包括原型链上的可枚举属性。
对象的可枚举属性(包括原型链上的可枚举属性)
自身和原型链上的属性
该方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。
一个
Object.getOwnPropertyDescriptor()返回对象对应的属性描述符。
该方法直接在一个对象上定义一个或多个新的属性或修改现有属性,并返回该对象。
一个或多个
Object.getOwnPropertyDescriptors()ES8返回对象所有属性描述符。该方法引入目的是为了解决Object.assign()无法正确拷贝get属性和set属性的问题,详见此
ES6
该方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
复制
翻看源码能知道,它是一层浅拷贝
该方法判断两个值是否是相同的值。
解决ES5中只有===和==判断的不足Equality comparisons and sameness
Stage 1
该方法可以冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。该方法返回被冻结的对象。目前该方法在tc39 Stage1阶段,兼容性需要看后续发展。
冻结
Object.isFrozen(obj)判断一个对象是否被冻结
MDN Object
tc39 finished-proposals
Equality comparisons and sameness
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Object是js最重要的数据结构,es6对其进行了重大升级。除了解构外,Object还提供了大量的基础方法。另外Object对象属性及其方法太常用,有些相似的方法容易使用错误,故根据MDN归类整理。注意文中重点标注的文字以及角标标注的ES发布版本。
Key/Value
Object.keys(obj)
ES5
该方法返回一个
给定对象的自身可枚举属性
组成的数组。Object.values(obj)
ES8
该方法返回一个
给定对象自身的所有可枚举属性值
的数组Object.entries(obj)
ES8
该方法返回一个
给定对象自身可枚举属性的键值对
数组。Object.getOwnPropertyNames(obj)
该方法返回一个数组,该数组对元素是 obj
自身拥有的枚举或不可枚举属性
名称字符串for ... in
for...in语句以任意顺序遍历一个
对象的可枚举属性(包括原型链上的可枚举属性)
。包括原型链上的可枚举属性。Descriptor
Object.defineProperty(obj, prop, descriptor)
该方法会直接在一个对象上定义
一个
新属性,或者修改一个对象的现有属性, 并返回这个对象。Object.defineProperties(obj, props)
该方法直接在一个对象上定义
一个或多个
新的属性或修改现有属性,并返回该对象。Other
Object.assign(target, ...sources)
ES6
该方法用于将所有可枚举属性的值从一个或多个源对象
复制
到目标对象。它将返回目标对象。Object. is(value1, value2)
ES6
该方法判断两个值是否是相同的值。
Object.freeze(obj)
Stage 1
该方法可以
冻结
一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。该方法返回被冻结的对象。目前该方法在tc39 Stage1阶段,兼容性需要看后续发展。参考文档:
MDN Object
tc39 finished-proposals
Equality comparisons and sameness
The text was updated successfully, but these errors were encountered: