检查 JavaScript 是否存在意外分配

Check JavaScript for Unexpected Assignments

我有一些 JavaScript 需要检查以确保我没有使用赋值运算符 (=) 而不是相等运算符 (==)。我查看了 JShint、JSLint 和 Google Closure Compiler。不幸的是,无论我如何设置前两个工具,我都会收到一堆关于各种挑剔的小东西的垃圾 "errors",并且 Google Closure 编译器不会检测到这个非常常见的错误。

是否有任何工具可以替代上述三种工具?真的,我只想检查这个错误。其他的我不在乎。

你可以用 grasp 来做到这一点,它类似于 grep,但它搜索 Javascript 个抽象语法树。

例如,如果您签出 keybase node-client,然后 运行:

 grasp -r 'if.test[op==]'

它将匹配 .js 文件中包含 if-statements 的所有行,这些行在他们的测试中有赋值,这里是截图: