关于Javascript静态分析工具的问题,如Google Closure,JSHint,JSLint

时间:2011-06-27 05:22:11

标签: javascript static analysis

Google Closure,JSHint,JSLint等Javascript静态分析工具可以执行以下操作:

  1. 他们可以在源代码中识别未使用的Javascript文件和函数吗?
  2. 他们能否在源代码中识别出重复的Javascript文件和函数?

2 个答案:

答案 0 :(得分:1)

这些静态分析工具没有文件概念,只有代码的文本表示。因此,他们不会识别未使用或重复的文件。他们必须知道如何部署文件才能做到这一点。

他们没有识别未使用的功能。

他们确实在同一个文件中识别出重复的功能。至少在大多数情况下:

function a() {}

/* ... */ 

function a() {}

会给你a is already defined。但是:

var a;
a = function () {};

/* ... */

a = function () {};

是完全合法的,不会给你一个错误。

如果你想在所有文件中找到重复的功能,你可以在linting之前简单地将它们连接在一起。

答案 1 :(得分:0)

我们的CloneDR静态分析工具可以找到许多语言(包括JavaScript)的任意代码片段的精确和近似重复的副本。它将在文件内和文件之间执行。 (CloneDR未检测到未使用的代码。)