我知道JSLint / JSHint,但有没有针对错误检查的JavaScript静态分析工具而不是语法错误?
例如:
new Date(2001, 12, 31)
这通常是一个错误,因为Date构造函数中的月份设计为0到11
f.apply(arguments)
这通常是一个错误,因为apply的第一个参数是this
上下文而不是参数。
function One(x) { return 1; }
One(1, 2);
这通常是一个错误,因为您正在调用具有2个参数的已知签名1参数的函数。
我知道我提到的不是确定性的,但其他语言中许多更有用的静态分析工具也不具有确定性。他们给出了潜在错误的置信度。