问题标签 [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.

0 投票
6 回答
14290 浏览

javascript - 在定义之前使用了“变量”

我正在检查是否定义了变量,如果没有明确定义,我将通过以下方式定义它:

因为变量没有定义,JSLint 警告说它在定义之前就被使用了,而这正是我想要的。

我该如何克服呢?

我想启用明确定义这些变量这样做:

因此,将包含此脚本的每个人都可以自定义一些属性。恐怕我无法改变这个逻辑,因为它已经被数百个网站以这种方式使用。

向下滚动以获得答案/解决方案,因为我已经回答了我自己的问题 Stack Overflow 没有显示出来。一定不要错过他们。

0 投票
3 回答
2088 浏览

javascript - jslint 忽略预期的“{”错误

Expected '{' and instead saw 'blah'当我通过 jslint 运行我的脚本时,我会吐出很多错误。是否有忽略此错误的选项?

0 投票
2 回答
863 浏览

vim - 使用 vim+jslint 的 quickfix 窗口

我正在使用这里描述的 vim+jslint 组合,并且在弄清楚如何将两者一起使用时遇到问题。我猜错误列表应该显示在上半部分,而下半部分有实际页面?如果是这样,我该怎么做?(注意,我对 quickfix 窗口完全陌生,文档并不是最好的描述如何使用它的文档)。

0 投票
6 回答
7677 浏览

javascript - 我应该如何定义一个 JavaScript 的“命名空间”来满足 JSLint?

我希望能够将我的 JavaScript 代码打包到“命名空间”中,以防止与其他库发生名称冲突。由于命名空间的声明应该是一段简单的代码,我不想依赖任何外部库来为我提供此功能。我已经找到了关于如何简单地做到这一点的各种建议,但在通过JSLint运行时似乎没有一个没有错误(使用“The Good Parts”选项)。

例如,我从Advanced JavaScript(没有 YUI 的命名空间部分)尝试了这个:

通过JSLint运行它会出现以下错误:

“隐含全局”错误可以通过显式声明来修复MyNamespace...

...并且可以通过在 if 块之外声明变量来修复其他两个错误。

所以这行得通,但在我看来(因为MyNamespace在检查时总是未定义?)它相当于更简单的:

JSLint 对此很满意,但我担心我已经将代码简化到无法再作为命名空间正常工作的程度。这个最终的表述是否合理?

0 投票
1 回答
6544 浏览

javascript - 为什么 JSLint 在这行代码中返回 'bad escapement'?

为什么 JSLint 在以下 JavaScript 行中返回“错误的转义”?

从 JSLint 文档中,我认为这没问题,因为正则表达式文字前面有一个括号:

正则表达式以简洁和神秘的符号编写。JSLint 寻找可能导致可移植性问题的问题。它还尝试通过推荐显式擒纵机构来解决视觉上的歧义。

JavaScript 的正则表达式字面量语法重载了 / 字符。为避免歧义,JSLint 期望正则表达式文字前面的字符是 ( 或 = 或 : 或 , 字符。

0 投票
2 回答
6467 浏览

javascript - JSLint“禁止正则表达式中的不安全”选项的目的

我有一行代码在通过 JSLint 运行时出现以下错误:

此错误似乎是指 JSLint 的选项页面中的以下描述:

我不太明白客户端javascript应用程序如何真正被认为是安全的。即使使用最严密的正则表达式,仍然可以启动诸如 firebug 之类的东西并无论如何更改变量。真正的输入验证应该在服务器上完成,客户端浏览器应该坚持使用验证来处理普通用户的滥用行为。

忽略此错误是否安全?我是否在这里错过了一个角度,因为客户端输入验证,我的应用程序将不安全?

0 投票
6 回答
5758 浏览

javascript - JavaScript 中的关键字“new”有什么副作用?

我正在为 jQuery 开发一个插件,我收到了这个JSLint错误:

我没有太多运气找到有关此 JSLint 错误或任何new可能产生的副作用的信息。

我试过用谷歌搜索“不要使用‘新的’来获得副作用。” 并得到 0 个结果。Binging给了我 2 个结果,但它们都只是引用了 JSLint 源。希望这个问题会改变这一点。:-)

更新#1: 这里有更多的上下文来源:

更新 #2: 我使用Starter jQuery 插件生成器作为我的插件的模板,其中包含该代码。

0 投票
1 回答
6972 浏览

javascript - 与“在定义之前使用”的 JS 和 Titanium Developer 竞争

我有一个冗长的 JavaScript 文件,它通过 JSLint,除了“在定义之前使用”错误。

我使用了正常的函数声明,如...

相对于...

并与史蒂夫哈里森对较早帖子的回复一致......

假设您使用 function 关键字声明所有函数,我认为这将成为一个编程风格的问题。就个人而言,我更喜欢以一种看起来合乎逻辑的方式来构建我的函数,并使代码尽可能地可读。例如,像你一样,我会在顶部放置一个 init 函数,因为它是一切的起点。

...我喜欢以对我有意义的顺序查看功能。

该脚本在测试的几种浏览器(例如,FireFox、Safari、Mobile Safari、Fennec、IE、Chrome、Midori 等)中都能完美运行。

这就是问题所在:我想在使用 Titanium 构建的 iPhone 应用程序中使用脚本,但它的编译器因“在定义之前使用”错误而停止。

我怎样才能解决这个问题?

这可能是一个愚蠢的问题,但也......如果需要按特定顺序调用函数,如何解决被调用函数需要回调到最初调用它的函数的问题?例如...

如果函数需要按顺序声明,则function screen1需要先于function buildMenu. 但是,如果在某些情况下,screen1 无法构建并因此想要重新显示菜单(即调用技术上尚未声明的函数)怎么办?

哦,是的......还有一个问题:是否有网站或程序可以自动重新排序功能而不是要求程序员手动执行?

0 投票
1 回答
256 浏览

jslint - JSLint 消息:“期望 <\/ 而不是 <\” - 该错误的原因是什么?

我正在使用 JSLint 验证我的代码,但收到以下错误:

“期待 </ 而不是 <\”

我得到了我的 HTML 代码和 JavaScript 代码。例如:

和:

谁能告诉我为什么会这样?

0 投票
2 回答
983 浏览

javascript - JSLint - 容忍低效的下标?

我正在阅读JSlint 选项文档以了解每个可用选项,并且遇到了一个我不太了解的选项,并且在其他地方找不到任何有用的信息。

sub - 容忍低效的下标

如果下标表示法可用于以点表示法更好地表达的表达式,则为true 。

谁能更清楚这意味着什么?

谢谢