深色模式
对象属性获取
Object.keys
获取对象可枚举的属性
js
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.keys(object1));
// Expected output: Array ["a", "b", "c"]
Object.getOwnPropertyNames()
获取指定对象的所有自身属性的属性名(包括不可枚举属性但不包括 Symbol 值作为名称的属性)组成的数组。
js
var arr = ["a", "b", "c"];
console.log(Object.getOwnPropertyNames(arr).sort()); // ["0", "1", "2", "length"]
Object.prototype.hasOwnProperty()
指示对象自身是否具有某种属性
js
arr.hasOwnProperty("length") // true
arr.hasOwnProperty("toString") // false
for ...in 和 Object.keys 的区别
Object.keys
获取对象自身可枚举属性for ...in
获取对象自身和原型链上面可枚举的属性
for ...in 和 for ...of 的区别
for let key in obj
遍历对象所有可枚举的属性, key 是属性for let value of iterable
按顺序迭代对象 value 是值
iterable 可迭代对象包括: Array, Map, Set, String, arguments 等