团队代码风格规范强调语义清晰、退出可控、不碰原型链:for/for-of用于流程控制,foreach仅执行副作用,map/filter等有强契约,禁用for-in遍历数组,统一处理类数组对象,复杂退出逻辑需匹配方法并命名体现意图。

团队代码风格规范不是靠强制记忆,而是让每种遍历方式“自己说话”——它该做什么、不该做什么,一目了然。核心就三条:语义清晰、退出可控、不碰原型链。
明确每种方法的语义边界
把遍历方法当“动词”用,而不是“语法糖”堆砌:
-
for / for-of:表示“我要逐项处理,可能要跳过、中断或反向走”。适合带条件判断、提前退出(
break)、异步等待、或需要精确控制流程的场景。 -
forEach:只用于“执行副作用”,比如发请求、改 DOM、打日志。它不返回有意义的值,也不能中断,所以一旦看到
forEach里有if (xxx) break或return,就是语义错位。 -
map / filter / find / some / every:每个都有强契约。比如
map必须返回新值,filter必须返回布尔值,find一旦命中就停。用错一个,逻辑就容易出偏差。
禁用 for-in 遍历数组
哪怕它能跑通,也必须在 ESLint 规则里禁掉(no-restricted-syntax)。因为 for-in 遍历的是对象的可枚举属性名,会意外拿到原型上挂的方法(比如 arr.toJSON),且不保证顺序。团队统一用 for-of 或函数式方法,既安全又意图明确。
Java开发手册规约集合,基于阿里巴巴Java开发手册(嵩山版)。 涵盖7大维度:编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约。 当用户需要:(1) 编写或审查Java代码 (2) 检查命名/代码规范 (3) 处理异常和日志 (4) 编写单元测试 (5) 安全编码 (6) 数据库设...
统一处理类数组和可迭代对象
遇到 NodeList、arguments、Set 等非数组但可遍历的结构,不许用 Array.prototype.forEach.call() 这类老写法。统一走 Array.from() 或展开运算符:
- 需要遍历并转换 →
Array.from(nodeList, node => node.id) - 只需简单遍历 →
for (const node of nodeList)(原生支持) - 要兼容旧环境且需 map →
[...nodeList].map(...)
退出机制写进命名和注释
当逻辑复杂到需要中途退出时,别硬套 forEach 加标志位。直接换更合适的工具,并在变量名中体现意图:
- 找第一个匹配项 → 用
find或findIndex,变量叫firstValidItem - 检查是否全满足 → 用
every,变量叫allItemsReady - 需要中断+副作用 → 用
for-of,并在循环前加注释说明退出条件
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










