Object.assign()
用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。常用来合并对象。(如果源对象中的属性具有相同的键,则目标对象中的属性会被源中的属性覆盖)
const obj1={a:1,b:2}
const obj2={c:3,d:4}
const newObj=Object.assign(obj1,obj2)
console.log(obj1) //{a:1,b:2,c:3,d:4}
console.log(obj2) //{c:3,d:4}
console.log(newObj) //{a:1,b:2,c:3,d:4}
//具有相同的键
const obj1={a:1,b:2}
const obj2={b:3,d:4}
const newObj=Object.assign(obj1,obj2)
console.log(obj1) //{a:1,b:3,d:4}
console.log(obj2) //{b:3,d:4}
console.log(newObj) //{a:1,b:3,d:4}
Object.entries()
返回对象的自身可枚举属性的[key:vakue]组成的数组
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.entries(obj))
/**
* [
* [a,1],
* [b,2],
* [c,3],
* ]
*/
for (const [key, value] of Object.entries(obj)) {
console.log(key,value)
/**
* a 1
* b 2
* c 3
*/
}
for-in
const obj = { a: 1, b: 2, c: 3 };
for (let item in obj) {
console.log(item);
/**
* a
* b
* c
*/
};
Object.fromEntries
Object.entries()的逆向操作
const arr = [['a', 1], ['b', 2]]
console.log(Object.fromEntries(arr)) //{a:1,b:2}
Object.values()
返回对象自身可枚举的属性值value组成的数组
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj))
/**
* [1,2,3]
*/
Object.keys(obj)
返回对象自身可枚举的属性key组成的数组
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.keys(obj))
/**
* [a,b,c]
*/
hasOwnProperty()
判断对象是否包含某个属性,返回一个布尔值
const obj = { a: 1, b: 2, c: 3 };
console.log(obj.hasOwnProperty('a')); //true
console.log(obj.hasOwnProperty('d')); //false
Object.hasOwn(obj,prop)
判断对象是否包含某个属性,返回一个布尔值
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.hasOwn(obj, 'a')); //true
console.log(Object.hasOwn(obj, 'd')); //false
Object.freeze()
冻结对象,使之不可更改
const obj = { a: 1, b: 2, c: 3 };
Object.freeze(obj)
obj.a = 4 //Cannot assign to read only property 'a' of object '#<Object>'
Object.isFrozen()
判断对象是否被冻结
const obj = { a: 1, b: 2, c: 3 };
Object.freeze(obj)
console.log(Object.isFrozen(obj)) //true