【发布时间】:2011-06-27 05:22:11
【问题描述】:
Google Closure、JSHint、JSLint 等 Javascript 静态分析工具能否做到以下几点:
- 他们能否识别源代码中未使用的 Javascript 文件和函数?
- 他们能否识别源代码中重复的 Javascript 文件和函数?
【问题讨论】:
标签: javascript static analysis
Google Closure、JSHint、JSLint 等 Javascript 静态分析工具能否做到以下几点:
【问题讨论】:
标签: javascript static analysis
这些静态分析工具没有文件的概念,只有代码的文本表示。因此它们不会识别未使用或重复的文件。他们必须了解您如何部署文件才能做到这一点。
它们不识别未使用的功能。
它们确实可以识别同一文件中的重复函数。至少在大多数情况下:
function a() {}
/* ... */
function a() {}
会给你a is already defined。然而:
var a;
a = function () {};
/* ... */
a = function () {};
完全合法,不会出错。
如果您想在所有文件中查找重复的函数,只需在 linting 之前将它们连接在一起即可。
【讨论】:
我们的CloneDR 静态分析工具可以找到适用于多种语言(包括 JavaScript)的任意代码片段的精确和近乎重复的副本。它将在文件内和跨文件这样做。 (CloneDR 不会检测未使用的代码。)
【讨论】: