PhpStorm 2021.3 Help

代码检查:未过滤的 for..in 循环

报告未过滤for-in的循环。

使用此构造不仅可以处理对象的自身属性,还可以处理其原型的属性。在某些特定情况下可能是意外的,例如,在复制或修改所有属性的实用程序方法中,或者当Object' 的原型可能被错误地修改时。例如,以下代码将打印 42 和 myMethod:

Object.prototype.myMethod = 函数 myMethod() {}; 让 a = { foo: 42 }; for (let i in a) { console.log(a[i]); }

建议用方法替换整个循环Object.keys()或添加hasOwnProperty()检查。应用快速修复后,代码如下所示:
for (let i in a) { if (a.hasOwnProperty(i)) { console.log(a[i]); } }

禁止编辑器中的检查

  1. 将插入符号放在突出显示的行上,然后按Alt+Enter或单击意图操作图标

  2. 单击要抑制的检查旁边的箭头,然后选择必要的抑制操作。

最后修改:2022 年 2 月 11 日