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
Same-value equality(同值相等) Object.is()与严格相等(===)的不同只有两处:
Object.is(+0, -0) //false +0 === -0 //true
Object.is(NaN, NaN) //true NaN === NaN //false
①Object.assign(target, source1, source2) ②将源对象合并到目标对象,并返回目标对象
const target = { a: 1 }; const source1 = { b: 2 }; const source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3}
③注意事项: 1)浅拷贝,且只拷贝自身属性,不拷贝继承的,symbol值也会被拷贝 2)只拷贝可枚举对象属性,当非首参数是(数值,字符串,布尔值)时,只有字符串会以数组的形式生效,因为只有字符串的包装对象,会产生可枚举属性
Object(true) // {[[PrimitiveValue]]: true} Object(10) // {[[PrimitiveValue]]: 10} Object('abc') // {0: "a", 1: "b", 2: "c", length: 3, [[PrimitiveValue]]: "abc"}
3)同名属性后面会覆盖前面 4)参数如果不是对象,就先转化为对象
typeof Object.assign(2) // "object"
5)首参数不能为null和undefined,因为无法转化为对象,会报错
Object.assign(undefined) // 报错 Object.assign(null) // 报错
6)非首参数如果是null和undefined,就会跳过,不会报错
ES5 的Object.getOwnPropertyDescriptor(obj, key)方法会返回某个对象属性的描述对象 ES2017引入了 Object.getOwnPropertyDescriptors(obj) 返回自身属性的描述 对象
const obj = { foo: 123, get bar() { return 'abc' } }; Object.getOwnPropertyDescriptors(obj) // { foo: // { value: 123, // writable: true, // enumerable: true, // configurable: true }, // bar: // { get: [Function: get bar], // set: undefined, // enumerable: true, // configurable: true } // }
①用来设置一个对象的原型对象(prototype),返回对象本身 ②第一个参数如果不是对象,会转化为对象,由于返回的是第一个参数本身,所以数值,字符串,布尔值这个操作不会产生任何效果
Object.setPrototypeOf(1, {}) === 1 // true Object.setPrototypeOf('foo', {}) === 'foo' // true Object.setPrototypeOf(true, {}) === true // true
④undefined和null无法转为对象,所以如果第一个参数是undefined或null,就会报错。
①Object.getPrototypeOf(obj),读取一个对象的原型对象
①返回一个数组,由键名组成(自身,可枚举属性键名)
①返回一个数组,由键值组成(自身,可枚举属性键值)
①返回一个数组,由键值对组成(自身,可枚举属性)
Object.entries(o)的逆操作,将键值对数组转化为对象
Object.fromEntries([ ['foo', 'bar'], ['baz', 42] ]) // { foo: "bar", baz: 42 }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
ES6总结系列之 对象的新增方法 篇
1. Object.is() --比较两个值是否相等
Same-value equality(同值相等)
Object.is()与严格相等(===)的不同只有两处:
2. Object.assign() --合并对象
①Object.assign(target, source1, source2)
②将源对象合并到目标对象,并返回目标对象
③注意事项:
1)浅拷贝,且只拷贝自身属性,不拷贝继承的,symbol值也会被拷贝
2)只拷贝可枚举对象属性,当非首参数是(数值,字符串,布尔值)时,只有字符串会以数组的形式生效,因为只有字符串的包装对象,会产生可枚举属性
3)同名属性后面会覆盖前面
4)参数如果不是对象,就先转化为对象
5)首参数不能为null和undefined,因为无法转化为对象,会报错
6)非首参数如果是null和undefined,就会跳过,不会报错
3.Object.getOwnPropertyDescriptors() --返回自身属性的描述 对象
ES5 的Object.getOwnPropertyDescriptor(obj, key)方法会返回某个对象属性的描述对象
ES2017引入了 Object.getOwnPropertyDescriptors(obj) 返回自身属性的描述 对象
4.__proto__属性,Object.setPrototypeOf(),Object.getPrototypeOf()
Object.setPrototypeOf(object, prototype)
①用来设置一个对象的原型对象(prototype),返回对象本身
②第一个参数如果不是对象,会转化为对象,由于返回的是第一个参数本身,所以数值,字符串,布尔值这个操作不会产生任何效果
④undefined和null无法转为对象,所以如果第一个参数是undefined或null,就会报错。
Object.getPrototypeOf()
①Object.getPrototypeOf(obj),读取一个对象的原型对象
5.对象的遍历
Object.keys(obj)
①返回一个数组,由键名组成(自身,可枚举属性键名)
Object.values(obj)
①返回一个数组,由键值组成(自身,可枚举属性键值)
Object.entries(obj)
①返回一个数组,由键值对组成(自身,可枚举属性)
Object.fromEntries(arr)
Object.entries(o)的逆操作,将键值对数组转化为对象
The text was updated successfully, but these errors were encountered: