问题标签 [jslint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 查找破坏 IE 的 ECMAScript/JavaScript 错误
我在一个相对庞大的 ECMAScript 代码库(> 60,000 LOC)上工作,我们往往会为我们可怕的朋友 Internet Explorer(尤其是 6 和 7)检测错误而费力。
目前,我被一个问题困扰了 3 天,我的 RIA 在 Google Chrome、Firefox 3.6、Opera 和 Internet Explorer 8 中呈现良好,但在 IE7 模式下运行 Internet Explorer 8(或使用真正的 IE)时失败-7)。
我的问题真的是:你如何识别会在 IE7 中产生错误的代码?
通常我依赖 JSLint 并且我倾向于捕捉通常的嫌疑人(尾随逗号,我讨厌你),但在这种特殊情况下,我刚刚对我的所有代码重新运行了一个 linter,包括源代码和最小化代码,它没有产生我通常的嫌疑人。所以我想我错误地引入了 IE 不喜欢的东西(谁知道呢,也许我疯了,在某处使用了 Array.map 而不是 dojo.map?)它在我的脸上炸开了,产生了很好的错误消息对我一点帮助都没有(“[object object]”和“is null”,它不应该是,所以我假设上游有一个错误,它默默地失败并阻止了这个对象的创建)。
我试过看一下 Google Closure Linter,但它并没有产生什么特别的东西,而且我也不认为 Google Closure Compiler 会成为我的救星。是否有任何工具(命令行、Web 服务或其他)可以解析/运行代码,就好像它正在模拟 IE 一样,以便我们可以得到适当的错误?
任何提示表示赞赏。
编辑:感谢您迄今为止在尝试解决我的问题方面的帮助,但我真正要问的是是否有工具可以进行此类检查,这意味着针对特定浏览器验证功能集和语法。在我看来,这是 JS 世界中严重缺乏的东西(对于 FF 或 Chrome 来说,显然它们的调试器更有帮助)。
EDIT2:我今天(3天后)最终找到了我的问题的根源,通过在两个分支之间进行所有代码更改并意识到问题实际上已经存在但之前从未检测到并通过更旧的更改来缩小范围混乱并最终最终在所有地方添加控制台日志,直到我遇到故障点(上帝感谢emacs的正则表达式支持,可以将日志添加到每一行......很重但有效......)。有趣的事实是:IE 吞下了一个错误消息,该消息应该显示在 try catch 块中,最初是捕获源问题,然后重新抛出它。仍然不知道为什么,但如果没有,那会更容易找到,因为它是为此目的而设计的,以防万一它坏了。诡异的。可能不喜欢深层次的重投。
我会留下这个问题,因为现在没有实际问题的答案。
javascript - JSLint 突然报告:使用“use strict”的函数形式
我包括以下声明:
在我的大多数 Javascript 文件的开头。
JSLint 以前从未警告过这一点。但现在是,说:
使用“use strict”的函数形式。
有谁知道“函数形式”是什么?
javascript - jslint 是如何工作的?
jslint 如何检查 javascript 中的问题?它有一个实际的 javascript 解析器吗?
macos - JSLint 与 Textmate
我尝试了本教程(http://www.phpied.com/jslint-on-mac-textmate/)中的说明来使用 textmate 运行 jslint,但在“步骤 1”的最后一步卡住了
这是错误:
线程“main”中的异常 java.lang.NoClassDefFoundError: org/mozilla/javascript/tools/shell/Main 原因:java.lang.ClassNotFoundException: org.mozilla.javascript.tools.shell.Main at java.net.URLClassLoader$1 .run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307 ) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:248)
谢谢
jslint - 没有使用选择器找到任何元素:“.highlight”
我很感激 jslint 告诉我我糟糕的编程实践。如何摆脱发出此命令时收到的警告消息:
当没有 class="highlight" 的元素时。
javascript - JSLint 可以构建为 C++ 库吗
我需要在我用 C++ 编写的脚本编辑器中进行 JavaScript 验证。
我知道 JSLint 提供了源代码,是否可以将 JSLint 构建为 C++ 库,然后我可以将其与他们的 API 一起使用,而无需使用他们的 exe。
如果没有,是否有任何其他类似的开源 C++ 库来验证 JavaScript 并提供错误详细信息?
谢谢。
参考: http ://www.javascriptlint.com/docs/running_from_your_windows_program.htm
javascript - `new Object()` 和对象字面量表示法有什么区别?
这种用于创建对象的基于构造函数的语法有什么区别:
...和这个字面语法:
看起来两者都做同样的事情,尽管 JSLint 更喜欢您使用对象文字表示法。
哪个更好,为什么?
javascript - JS Lint,Javascript 的语义必须如何?
所以 JSLint 是一个很好的工具,它促进了语义和语法。我从客户端站点获取到 JS Lint 的大多数 JS 通常都会失败,尽管它们会吱吱作响,并且大多数站点功能仍然有效。我试图卖给他们修复他们的 Javascript,但他们认为它好像没有坏(这意味着它正在做他们想要它做的事情)为什么要修复它?语义和语法对他们来说太抽象了。
在您看来,使用 JS 的网站必须遵守 JS Lint 代码标准有多重要?什么是符合 JS Lint 语义和语法的好论据?
javascript - JSLint(Javascript 验证器网站)- 错误!隐含的全局:
我刚刚在 JSLint 测试了我的自定义库脚本。除一个错误外,所有错误都已解决。隐含的全局错误..这真的是一个错误吗?我可以忽略它还是应该努力解决这个错误..?
谢谢您的反馈!
这是什么意思?顺便说一句,我使用 JQuery 库..也许这就是问题^^..
javascript - JSLint 错误:将所有“var”声明移动到函数顶部
JSLint 站点已更新,我无法再检查 JS 脚本。对我来说,这个警告并不关键,我不想通过数千行来解决这个问题,我想找到更关键的问题。
有谁知道如何关闭这个错误,或者使用旧的 JSLint?
更新
例子:
jslint.com 输出:
问题:
在函数之上拥有变量是新的要求。我不能使用 JSLINT 来测试代码,因为它会在出现此错误时停止扫描脚本。
我有很多代码,不想将此警告威胁为严重错误。
更新 8/22/2011:找到http://jslint.com,它看起来比http://jslint.com/好多了