linting 和编译有啥区别?
Posted
技术标签:
【中文标题】linting 和编译有啥区别?【英文标题】:What's the difference between linting and compiling?linting 和编译有什么区别? 【发布时间】:2017-02-11 09:12:49 【问题描述】:我知道在 Java 中,有一个编译器会在您编写错误代码时告诉您。但是 javascript 不能那样工作,因为它没有编译器。但是,“linting”javascripts 是编译代码的方式吗?
【问题讨论】:
„但是 Javascript 不能以这种方式工作,因为它没有编译器。”看到这个en.wikipedia.org/wiki/JavaScript_engine 【参考方案1】:Linting 是解析代码以验证语法和格式是否良好并遵循良好实践。 linter 会告诉您缩进是否不正确,或者您是否应该在 =
运算符周围添加空格。
如果您的代码包含众所周知的安全漏洞或代码异味,linter 还可以警告您。
编译是解析代码以验证语法是否正确,并将代码转换为另一种语言(通常是更快的语言)。
那么有什么区别呢?
编译:
语法验证 代码转换为不同的语言起绒:
语法验证 样式和格式分析 (可选)代码异味/错误代码检测 (可选)安全/性能分析【讨论】:
也就是说,编译 = linting + 转换代码? 不完全是,我会更新我的答案来解释差异【参考方案2】:Linting 是运行程序的过程,该程序将分析代码中的任何错误。
JavaScript Lint 比竞争对手的 lint 具有优势,因为它基于 Firefox 浏览器的 JavaScript 引擎。这提供了一个强大的框架,它不仅可以检查 JavaScript 语法,还可以检查脚本中使用的编码技术并警告有问题的做法。
有关 javascript lint 的更多信息,请访问 http://www.javascriptlint.com/
而编译将通过代码a运行并将其转换为机器语言
【讨论】:
以上是关于linting 和编译有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章