问题标签 [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 投票
7 回答
14838 浏览

javascript - JSLint 说“var statements 太多”背后的原因是什么

JSLint(打开 onevar 标志)正在标记我拥有的一些 JavaScript 代码:

我很高兴修复这些错误,但我想知道,我这样做是为了提高性能还是因为这只是一种不好的做法,并且更有可能在我的 javascript 代码中引入错误。onevar 标志背后的原因是什么?

我确实查看了var 关键字的 JSLint 文档,但它没有具体讨论为什么同一函数中的多个 var 语句不好。

这是一个示例的尝试。解释代码将如何受益于只有 1 个 var 语句:

0 投票
17 回答
14471 浏览

javascript - JSLint 可以离线使用吗?

我想使用JSLint,但我对可以访问我未经过滤的源代码的工具持谨慎态度。是否有离线版本或者是否有另一个类似的工具可以lint离线对 JavaScript 进行“错误检查”?

编辑:一个带有 GUI 的,它向您显示样式化的错误列表,而不是命令行界面?

0 投票
5 回答
19020 浏览

javascript - var x = new Array(); 有什么问题?

在 JSLint 中,它警告说

(这不是一个真正的变量名)应该是

第一种语法有什么问题?该建议背后的原因是什么?

0 投票
3 回答
43845 浏览

javascript - 立即函数调用语法

有一个JSLint选项,实际上是 The Good Parts 之一,它“[需要] parens around immediate invocations”,这意味着构造

而是需要写成

我的问题是——谁能解释为什么第二种形式可能被认为更好?是不是更有韧性?更不容易出错?它比第一种形式有什么优势?


自从提出这个问题后,我开始理解在函数值和函数值之间进行清晰视觉区分的重要性。考虑立即调用的结果是赋值表达式右侧的情况:

虽然最外面的括号在语法上是不必要的,但左括号给出了一个预先指示,即被分配的值不是函数本身,而是被调用函数的结果。

这类似于 Crockford 关于构造函数大写的建议——它旨在为任何查看源代码的人提供视觉提示。

0 投票
18 回答
353730 浏览

javascript - 为什么要避免 JavaScript 中的递增(“++”)和递减(“--”)运算符?

工具提示之一jslint是:

++众所周知,--
( ++increment) 和--(decrement) 运算符会通过鼓励过多的技巧来导致糟糕的代码。它们在启用病毒和其他安全威胁方面仅次于错误的架构。有一个 plusplus 选项禁止使用这些运算符。

我知道像这样的 PHP 结构$foo[$bar++]很容易导致错误,但我想不出比以下更好的方法来控制循环:

或者

突出显示它们是jslint因为有一些类似的语言缺少“ ++”和“ --”语法或处理方式不同,还是有其他理由可以避免我可能遗漏的“ ++”和“ ”?--

0 投票
3 回答
29026 浏览

javascript - 在记事本++中使用 JSLint

我已经看到其他文本编辑器使用扩展来允许语法检查器,例如JSLint,这可以使用 Notepad++ 吗?

0 投票
4 回答
72287 浏览

javascript - 什么是 javascript 中的数组文字表示法,什么时候应该使用它?

JSLint 给了我这个错误:

第 11 行字符 33 处的问题:使用数组文字符号 []。

什么是数组文字表示法,为什么它要我使用它?

它在这里显示new Array();应该可以正常工作......我有什么遗漏吗?

0 投票
2 回答
21675 浏览

formatting - 如何关闭 JSLint 缩进警告?

我发现JSLint会产生很多形式的警告:

JSLint 选项文档描述了一个选项,该indent选项识别表示每个缩进级别的空间量的数值。这个选项允许我说每个缩进级别使用 2 个空格。我只是在我的 JavaScript 文件的顶部写了这样的东西:

好的,不错。现在 JSLint 知道每个缩进级别要缩进多少,但是 JSLint 似乎是硬编码来决定每行应该有什么级别的缩进

假设我想以不同于 JSLint 规定的方式缩进我的代码。我可以用一些 JSLint 选项来做到这一点吗?如果没有,我至少可以关闭缩进警告吗?我试过:

但这并没有导致缩进警告被忽略;它导致了一个 JSLint 错误。

0 投票
6 回答
1469 浏览

javascript - JSLint 是否改进了您的 Javascript 编码?

道格拉斯·克罗克福德 说:

JavaScript 是一种草率的语言,但在其中有一种优雅、更好的语言。JSLint 可以帮助您使用更好的语言进行编程,并避免大部分问题。

那些经常使用 JSLint 的程序员是否也有同样的看法?

0 投票
29 回答
1161602 浏览

javascript - “use strict”在 JavaScript 中做了什么,背后的原因是什么?

最近,我通过 Crockford 的JSLint运行了一些 JavaScript 代码,它给出了以下错误:

第 1 行字符 1 的问题:缺少“use strict”语句。

做了一些搜索,我意识到有些人添加"use strict";到他们的 JavaScript 代码中。一旦我添加了语句,错误就停止出现了。不幸的是,谷歌没有透露这个字符串声明背后的大部分历史。当然,这一定与浏览器如何解释 JavaScript 有关,但我不知道会产生什么影响。

那么到底是"use strict";什么,它意味着什么,它仍然相关吗?

当前的浏览器是否响应该"use strict";字符串或是否供将来使用?