const dateEnum = {
monday:1,
tuesday:2,
wednesday:3,
thursday:4,
friday:5,
saturday:6,
sunday:7
}
/*** 方法一:for-in 语句是一种严格的迭代语句,用于枚举对象中的非符号键属性。***/
for(const key in dateEnum){
console.log(key)
}
注意:
for...in 循环在JavaScript中用于遍历对象自身的非Symbol属性,包括其继承的可枚举属性。默认情况下,JavaScript对象的原型(__proto__)链上的属性是不可枚举的,所以for...in不会遍历到原型链上的属性。
但是,如果你有修改Object.prototype或任何对象的原型,添加了可枚举属性,那么for...in将会遍历到这些属性,如下:
// 如果我们在Object.prototype上添加了属性,那么for...in可能会遍历到这些属性
Object.prototype.c = 3; // 不推荐这样做
for (let key in dateEnum) {
console.log(key);
// 现在输出 "monday" ,"tuesday","wednesday","thursday","friday","saturday","sunday", "c"
}
/*** 方法二:for-of 语句是一种严格的迭代语句,用于遍历可迭代对象的元素。***/
for(const [key, value] of Object.entries(dateEnum)){
console.log(key,value)
}
for(const key of Object.keys(dateEnum)){
console.log(key)
}
for(const value of Object.values(dateEnum)){
console.log(value)
}