1. hasOwnProperty():返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。
et object1 = new
Object();
object1.property1 = 42
;
object1.
hasOwnProperty('property1'); // true
object1.
hasOwnProperty('toString'); // false
2. isPrototypeOf():用于测试一个对象是否存在于另一个对象的原型链上。
function Foo() {}
function Bar() {}
function Baz() {}
Bar.prototype = Object.
create(Foo.prototype
);
Baz.prototype = Object.
create(Bar.prototype
);
let baz = new
Baz();
Baz.prototype.
isPrototypeOf(baz
); // true
Bar.prototype.
isPrototypeOf(baz
); // true
Foo.prototype.
isPrototypeOf(baz
); // true
Object.prototype.
isPrototypeOf(baz
); // true
3. toString():返回一个表示该对象的字符串。
let o = new
Object();
o.
toString(); //
'[object Object]'
4. valueOf():返回指定对象的原始值。
let o = new
Object();
o.
valueOf(); // {}
5.Object.assign():用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
let target = { a: 1,
b: 2
};
let source = { b: 4,
c: 5
};
let returnedTarget = Object.
assign(target, source
);
target
; // { a: 1,
b: 4,
c: 5
}
returnedTarget
; // { a: 1,
b: 4,
c: 5
}
6.Object.defineProperties():直接在一个对象上定义新的属性或修改现有属性,并返回该对象。
let obj = {};
Object.defineProperties(obj, {
'property1': {
value: true,
writable: true
},
'property2': {
value: 'Hello',
writable: false
}
});
obj.property1
; // true
obj.property2
; //
'Hello'
7.Object.keys():会返回一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用for…in循环遍历该对象时返回的顺序一致 。
Object.values():返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用for…in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。
Object.entries():返回一个给定对象自身可枚举属性的键值对数组,其排列与使用for…in循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)。
Object.fromEntries():把键值对列表转换为一个对象,是Object.entries()的逆操作。
let obj = { a: 1,
b: 2,
c: 3
};
let keys = Object.
keys(obj
);
let values = Object.
values(obj
);
let entries = Object.
entries(obj
);
keys
; // [
'a',
'b',
'c']
values
; // [1,2,3]
entries
; // [[
'a',1],[
'b',2],[
'c',3]]
let fromEntries = Object.
fromEntries(entries
);
fromEntries
; // {a: 1,
b: 2,
c: 3
}
![在这里插入图片描述]
(https://img-blog.csdnimg.cn/20200703173005704.png
)
8.for…in