当设置为 true 时,这些选项将使 JSHint 对您的代码产生更多警告。
bitwise |
此选项禁止使用按位运算符,例如 |
camelcase |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项允许您强制所有变量名使用 camelCase 风格或带有下划线的 UPPER_CASE。 |
curly |
此选项要求您始终在循环和条件语句中的块周围加上花括号。JavaScript 允许您在块仅包含一个语句时省略花括号,例如
但是,在某些情况下,这可能会导致错误(您可能认为
|
enforceall |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
此选项无法维护,除非自动选择用户加入新功能。这可能会导致在 JSHint 的次要版本之间升级时出现意外的警告/错误。 此选项是 JSHint 版本 2.6.3 中可用的最严格 JSHint 配置的简写。它启用了所有强制选项,并禁用了该版本中定义的所有宽松选项。 |
eqeqeq |
此选项禁止使用 |
es3 |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
请改用 此选项告诉 JSHint 您的代码需要符合 ECMAScript 3 规范。如果您需要您的程序在较旧的浏览器(例如 Internet Explorer 6/7/8/9)和其他旧版 JavaScript 环境中可执行,请使用此选项。 |
es5 |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
请改用 此选项启用 ECMAScript 5.1 规范 中首次定义的语法。这包括允许保留关键字作为对象属性。 |
esversion |
此选项用于指定代码必须遵守的 ECMAScript 版本。它可以采用以下值之一
|
forin |
此选项要求所有
要更深入地了解 JavaScript 中的 |
freeze |
此选项禁止覆盖原生对象的原型,例如
|
futurehostile |
此选项启用对在未来版本的 JavaScript 中定义的标识符使用情况的警告。尽管在未实现它们的上下文中覆盖它们不会产生影响,但这种做法在将代码库迁移到较新版本的语言时可能会导致问题。 |
globals |
此选项可用于指定在源代码中未正式定义的全局变量的白名单。当与 将条目设置为 另请参阅“环境”选项:一组用作启用常见 JavaScript 环境中定义的全局变量的简写选项。 要在单个文件中配置 |
immed |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项禁止在不将立即函数调用包装在括号中的情况下使用它们。包装括号有助于代码读者理解表达式是函数的结果,而不是函数本身。 |
indent |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项为您的代码设置特定的制表符宽度。 |
latedef |
此选项禁止在定义变量之前使用它。JavaScript 只有函数作用域,此外,所有变量都始终移动(或提升)到函数的顶部。这种行为可能会导致一些非常讨厌的错误,这就是为什么在显式定义变量后才使用它们更安全的原因。 将此选项设置为“nofunc”将允许忽略函数声明。 要更深入地了解 JavaScript 中的作用域和提升,请阅读 Ben Cherry 的 JavaScript Scoping and Hoisting。 |
leanswitch |
此选项禁止在
虽然像这样的子句在技术上是有效的,但它们不会影响程序行为,并且可能表明错误的重构。 |
maxcomplexity |
此选项允许您控制整个代码中的循环复杂度。循环复杂度衡量通过程序源代码的线性独立路径的数量。在 维基百科上阅读有关循环复杂度的更多信息。 |
maxdepth |
此选项允许您控制块的嵌套深度
|
maxerr |
此选项允许您设置 JSHint 在放弃之前生成的最大错误数量。默认为 50。 |
maxlen |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项允许您设置一行的最大长度。 |
maxparams |
此选项允许您设置每个函数允许的最大形参数量
|
maxstatements |
此选项允许您设置每个函数允许的最大语句数量
|
newcap |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项要求您将构造函数的名称大写。将打算与 不这样做不会破坏您的代码在任何浏览器或环境中的运行,但通过阅读代码来确定该函数是否应该使用或不使用 new 会有点困难。这一点很重要,因为当打算与 |
noarg |
此选项禁止使用 |
nocomma |
此选项禁止使用逗号运算符。如果使用不当,逗号运算符会掩盖语句的值,并导致代码错误。 |
noempty |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 当您的代码中存在空块时,此选项会发出警告。JSLint 最初会针对所有空块发出警告,而我们只是将其设为可选。没有研究报告表明 JavaScript 中的空块会以任何方式破坏您的代码。 |
nonbsp |
此选项会针对“不间断空格”字符发出警告。这些字符可以在 Mac 计算机上使用 Option+空格键输入,并且有可能破坏非 UTF8 网页。 |
nonew |
此选项禁止将构造函数用于副作用。有些人喜欢调用构造函数而不将其结果赋给任何变量
这种方法相对于简单地调用 |
noreturnawait |
异步函数在其返回值上解析。在大多数情况下,这使得返回 AwaitExpression 的结果(它本身就是一个 Promise 实例)变得不必要。为了清晰起见,通常最好直接返回异步操作的结果。值得注意的例外是在 TryStatement 的 https://jakearchibald.com/2017/await-vs-return-vs-return-await/ |
predef |
此选项允许您控制 JSHint 将哪些变量视为在环境中隐式定义的。使用字符串值数组对其进行配置。在变量名前面加上连字符 (-) 将从预定义变量集合中删除该名称。 JSHint 会将以这种方式声明的变量视为只读的。 此选项不能内联指定;它只能通过 JavaScript API 或外部配置文件使用。 |
quotmark |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项强制您在整个代码中使用一致的引号。它接受三个值: |
regexpu |
此选项会针对不包含“u”标志的正则表达式启用警告。“u”标志扩展了对 Unicode 的支持,并且还启用了更严格的解析规则。即使 JSHint 在不支持“u”标志的 JavaScript 引擎中执行,它也会强制执行这些规则。 |
shadow |
此选项会抑制有关变量遮蔽的警告,即声明一个已在外层作用域中声明过的变量。
|
singleGroups |
此选项禁止在非严格需要的情况下使用分组运算符。这种用法通常反映了对一元运算符的误解,例如
|
strict |
此选项要求代码在 ECMAScript 5 的严格模式下运行。严格模式是一种选择使用受限 JavaScript 变体的方式。严格模式通过将一些不会导致错误的 JavaScript 陷阱更改为产生错误来消除它们。它还修复了导致 JavaScript 引擎难以执行某些优化的问题。
|
trailingcomma |
当数组或对象字面量中的最后一个元素后面没有放置逗号时,此选项会发出警告。由于 IE 旧版本中的错误,过去不鼓励使用尾随逗号,但自 ES5 以来,它们的语义已标准化。(请参阅 #11.1.4 和 #11.1.5。)现在,它们有助于防止严格使用分号有助于防止的相同视觉歧义。 例如,此代码可能在上周二有效
但是,如果有人向数组中添加了一个元素,并且忘记了弥补缺少的逗号,则不会抛出语法错误,并且 linter 无法确定这是错误还是有意为之的函数调用。
如果始终用逗号附加列表项,则不会出现这种歧义
|
undef |
此选项禁止使用显式未声明的变量。此选项对于发现泄漏和拼写错误的变量非常有用。
如果您的变量在另一个文件中定义,则可以使用 |
unused |
当您定义但从未使用变量时,此选项会发出警告。它对于常规代码清理非常有用,尤其是在与
除此之外,此选项还会针对通过 设置为 |
varstmt |
设置为 true 时,禁止使用 VariableStatements。例如
|
设置为 true 时,这些选项将使 JSHint 对您的代码发出更少的警告。
asi |
此选项会抑制有关缺少分号的警告。社区中有很多关于分号的 FUD,这些 FUD 是由很多人散布的。常见的误区是分号始终是必需的(它们不是)并且它们不可靠。JavaScript 有一些关于分号的规则,所有浏览器都遵循这些规则,因此由您决定是否应该在代码中使用分号。 有关 JavaScript 中分号的更多信息,请阅读 Isaac Schlueter 的致 JavaScript 领导者关于分号的公开信以及JavaScript 分号插入。 |
boss |
此选项会抑制在预期进行比较的情况下使用赋值的警告。大多数情况下,像
您可以通过使用括号将赋值语句括起来,以便在每次使用时忽略此错误,例如
|
debug |
此选项会忽略代码中有关 |
elision |
此选项告诉 JSHint 您的代码使用 ES3 数组省略元素或空元素(例如, |
eqnull |
此选项会忽略有关 |
esnext |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
请改用 此选项告诉 JSHint 您的代码使用 ECMAScript 6 特定的语法。请注意,并非所有浏览器都实现这些功能。 更多信息 |
evil |
此选项会忽略有关使用 |
expr |
此选项会忽略有关在通常应使用赋值或函数调用时使用表达式的警告。大多数情况下,此类代码是拼写错误。但是,规范并未禁止这样做,这就是为什么此警告是可选的。 |
funcscope |
此选项会忽略有关在控制结构内部声明变量并在稍后从外部访问它们的警告。尽管使用
|
globalstrict |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
使用 此选项会忽略有关使用全局严格模式的警告。全局严格模式可能会破坏第三方小部件,因此不建议使用。 有关严格模式的更多信息,请参阅 |
iterator |
此选项会忽略有关 |
lastsemic |
此选项会忽略有关缺少分号的警告,但仅限于省略单行块中最后一个语句的分号时
这是一个非常特殊的用例,仅在使用自动 JavaScript 代码生成器时才有用。 |
laxbreak |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项会忽略有关代码中可能不安全的换行符的大多数警告。它不会忽略有关逗号优先编码样式的警告。要忽略这些警告,您必须使用 |
laxcomma |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项会忽略有关逗号优先编码样式的警告
|
loopfunc |
此选项会忽略有关循环内部函数的警告。在循环内部定义函数会导致错误,例如
要修复上面的代码,您需要复制
|
moz |
此选项告诉 JSHint 您的代码使用 Mozilla JavaScript 扩展。除非您专门为 Firefox Web 浏览器进行开发,否则不需要此选项。 更多信息 |
multistr |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项会忽略有关多行字符串的警告。多行字符串在 JavaScript 中可能很危险,因为如果您不小心在转义字符 ( 请注意,即使此选项允许正确的多行字符串,它仍然会警告缺少转义字符或转义字符和空格之间存在任何内容的多行字符串。
|
notypeof |
此选项会忽略有关无效
除非您绝对确定不需要这些检查,否则请勿使用此选项。 |
noyield |
此选项会忽略有关不包含 |
plusplus |
此选项禁止使用一元递增和递减运算符。有些人认为 |
proto |
此选项会忽略有关 |
scripturl |
此选项会忽略有关使用脚本目标 URL 的警告,例如 |
sub |
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。
JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目。 此选项会在可以使用点表示法表示时忽略有关使用 |
supernew |
此选项会忽略有关“怪异”构造的警告,例如
|
validthis |
当代码在严格模式下运行并且您在非构造函数中使用 **注意:**此选项只能在函数作用域内使用。如果您尝试全局设置此选项,JSHint 将会出错。 |
withstmt |
此选项会忽略有关使用 更多信息 |
这些选项让 JSHint 了解一些预定义的全局变量。
browser |
此选项定义了现代浏览器公开的全局变量:从古老的 **注意:**此选项不会公开 |
browserify |
此选项定义了使用Browserify 工具构建项目时可用的全局变量。 |
couch |
此选项定义了CouchDB公开的全局变量。CouchDB 是一个面向文档的数据库,可以使用 JavaScript 以 MapReduce 方式进行查询和索引。 |
devel |
此选项定义了通常用于记录简陋调试的全局变量: |
dojo |
此选项定义了Dojo 工具包公开的全局变量。 |
jasmine |
此选项定义了Jasmine 单元测试框架公开的全局变量。 |
jquery |
此选项定义了jQuery JavaScript 库公开的全局变量。 |
mocha |
此选项定义了Mocha 单元测试框架的“BDD”和“TDD”UI 公开的全局变量。 |
module |
此选项通知 JSHint 输入代码描述了一个 ECMAScript 6 模块。所有模块代码都被解释为严格模式代码。 |
mootools |
此选项定义了MooTools JavaScript 框架公开的全局变量。 |
node |
此选项定义了当您的代码在 Node 运行时环境中运行时可用的全局变量。Node.js 是一个使用异步事件驱动模型的服务器端 JavaScript 环境。此选项还会跳过一些在浏览器环境中有意义但在 Node 中没有意义的警告,例如文件级 |
nonstandard |
此选项定义了非标准但被广泛采用的全局变量,例如 |
phantom |
此选项定义了当您的代码在 PhantomJS 运行时环境中运行时可用的全局变量。PhantomJS 是一个带有 JavaScript API 的无头 WebKit 脚本引擎。它对各种 Web 标准(如 DOM 处理、CSS 选择器、JSON、Canvas 和 SVG)提供快速且原生的支持。 |
prototypejs |
此选项定义了由 Prototype JavaScript 框架公开的全局变量。 |
qunit |
此选项定义了由 QUnit 单元测试框架 公开的全局变量。 |
rhino |
此选项定义了当您的代码在 Rhino 运行时环境中运行时可用的全局变量。Rhino 是一个完全用 Java 编写的 JavaScript 开源实现。 |
shelljs |
此选项定义了由 ShellJS 库 公开的全局变量。 |
typed |
此选项定义了类型化数组构造函数的全局变量。 更多信息 |
worker |
此选项定义了当您的代码在 Web Worker 中运行时可用的全局变量。Web Workers 为 Web 内容提供了一种在后台线程中运行脚本的简单方法。 |
wsh |
此选项定义了当您的代码作为 Windows 脚本宿主 的脚本运行时可用的全局变量。 |
yui |
此选项定义了由 YUI JavaScript 框架公开的全局变量。 |
这些选项启用的行为可能会在 JSHint 的主要版本之间发生变化。在自动化环境(例如持续集成)中启用它们时要谨慎。
exports.unstable = { }; // 这些是与 JSLint 共享的 JSHint 布尔选项 // 其中 JSHint 中的定义与 JSLint 相反 exports.inverted = { bitwise |
不稳定选项允许控制对 JavaScript 语言提议添加内容的解析和 linting。就像它们描述的语言特性一样,这些选项的存在和行为是不稳定的;JSHint 保留在主要版本发布之间删除或修改它们的权利。 |