for in
let obj = {
a: 1,
b: true,
c: "hello",
d: 'day',
e: [6, 7, 8],
__proto__: {
lastname: '唐' //在对象原型上加属性
}
};
for (var key in obj) {
console.log(obj[key]);
}
// 1
// true
// hello
// day
// (3) [6, 7, 8]
// 唐
for of 遍历对象
不能遍历对象,只能遍历数组
let obj = {
a: 1,
b: true,
c: "hello",
d: 'day',
e: [6, 7, 8],
__proto__: {
lastname: '唐' //在对象原型上加属性
}
}
for (var key of obj) { // 只能遍历数组
console.log(key);
}
//报错:fillter.html:150 Uncaught TypeError: obj is not iterable
for of 遍历数组
var arr = [1, 2, 3, 8, ]
for (var key of arr) { // 只能遍历数组
console.log(key);
};
// 1
// 2
// 3
// 8
Object.getOwnPropertyNames(obj)
let obj = {
a: 1,
b: true,
c: "hello",
d: 'day',
e: [6, 7, 8],
__proto__: {
lastname: '唐' //在对象原型上加属性
}
};
Object.getOwnPropertyNames(obj).forEach(function(key) {
console.log(key, obj[key]);
});
// a 1
// b true
// c hello
// d day
// e (3) [6, 7, 8]
Reflect.ownKeys(obj)
let obj = {
a: 1,
b: true,
c: "hello",
d: 'day',
e: [6, 7, 8],
__proto__: {
lastname: '唐' //在对象原型上加属性
}
};
Reflect.ownKeys(obj).forEach(function(key) {
console.log(key, obj[key]);
});
// a 1
// b true
// c hello
// d day
// e (3) [6, 7, 8]