JavaScript常用循环有5种:for适合次数明确或需索引的场景;while适合条件驱动、次数不确定的情况;do...while确保至少执行一次;for...in遍历对象可枚举属性(含原型链),需hasOwnProperty过滤;for...of遍历可迭代对象(如数组、Map),不适用于普通对象。
JavaScript 里常用的循环主要有 5 种:for、while、do...while、for...in、for...of。选 for 还是 while,关键看“循环次数是否明确”。
比如遍历数组、生成固定范围数字、处理有明确长度的数据。
arr[i])比如等待用户输入、读取流数据、重试机制、状态变化触发退出。
当业务逻辑必须先做一次,再看要不要重复时用它。
for...in 遍历对象属性名(包括原型链上的可枚举属性),记得加 hasOwnProperty 过滤;for...of 遍历数组、字符串、Map、Set 等可迭代值,不关心索引,更安全简洁。
Object.keys(obj).forEach() 或 for...in + hasOwnProperty
遍历数组——顺序不保证,还可能遍历到意外属性基本上就这些。不复杂但容易忽略细节,比如 while 忘写递增、for...in 没过滤原型属性、for...of 误用于普通对象——踩过坑就知道该选谁了。