linter和验证器有什么区别?

时间:2015-12-07 18:40:28

标签: javascript html validation lint

我正在组织一些事情,并希望将这两组结合起来。事实上,我不知道W3以外的任何其他验证器 - http://validator.w3.org/

2015-05-16 14:00:00 NULL

这两种工具之间有什么区别吗?两者都只是静态地查看代码并根据设置的语法对它进行测试吗?

3 个答案:

答案 0 :(得分:4)

lint程序检查可疑或危险的代码,并根据样式指南检查代码。 linter必须能够解析代码,因此它还可以根据语言规范进行验证。因此,在某种程度上,linter是验证者加上额外的东西。

验证程序验证代码是否符合语言规范。它不关心风格或逻辑。

由linter捕获但不是由验证器捕获的事物的示例:

  • 除以零(其有效语法,因此它传递验证器)。
  • 在声明或填充之前使用变量(再次,有效语法)。
  • 使用数组索引检测越界问题(同样,有效的语法)。
  • 风格问题(同样的事情)
  • if (x = 3) { }之类的代码是许多语言的有效语法,并且会传递验证程序。一个linter会说“嘿,你在做什么,兄弟?这对我来说不合适。” (可疑代码示例)

答案 1 :(得分:1)

lint查找语法和其他问题。验证器寻求符合特定规范。

答案 2 :(得分:1)

Linters确保代码正确形成并进行语法化以防止错误 - 通常是实时或保存/编译。

验证器(在W3的情况下)确保标记符合为该特定doctype定义的规则。

两者之间存在重叠(因为它们都旨在帮助预防错误,但是Linter通常更为详尽。)