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

Question on Javascript static analysis tool like Google Closure , JSHint , JSLint

本文关键字:Closure Google JSHint JSLint 静态分析 Javascript 工具 问题 关于      更新时间:2023-09-26

像Google Closure、JSHint、JSLint这样的Javascript静态分析工具能做到以下几点吗:

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

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

它们不会识别未使用的功能。

它们确实识别了同一文件中的重复函数。至少在大多数情况下:

function a() {}
/* ... */ 
function a() {}

会给你a is already defined。但是:

var a;
a = function () {};
/* ... */
a = function () {};

是完全合法的,不会给你带来错误。

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

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