JSHint 选项

此页面的内容来源于 JSHint 项目仓库。如果您发现错误,请 提交 issue 或(更好的是) 提交 pull request

强制选项

当设置为 true 时,这些选项将使 JSHint 对您的代码产生更多警告。

bitwise

此选项禁止使用按位运算符,例如 ^(异或)、|(或)等。按位运算符在 JavaScript 程序中非常少见,而且 & 通常只是 && 的误输入。

camelcase
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项允许您强制所有变量名使用 camelCase 风格或带有下划线的 UPPER_CASE。

curly

此选项要求您始终在循环和条件语句中的块周围加上花括号。JavaScript 允许您在块仅包含一个语句时省略花括号,例如

while (day)
  shuffle();

但是,在某些情况下,这可能会导致错误(您可能认为 sleep() 是循环的一部分,而实际上并非如此)

while (day)
  shuffle();
  sleep();
enforceall
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

此选项无法维护,除非自动选择用户加入新功能。这可能会导致在 JSHint 的次要版本之间升级时出现意外的警告/错误。

此选项是 JSHint 版本 2.6.3 中可用的最严格 JSHint 配置的简写。它启用了所有强制选项,并禁用了该版本中定义的所有宽松选项。

eqeqeq

此选项禁止使用 ==!=,而推荐使用 ===!==。前者在比较值之前会尝试强制转换值,这可能会导致一些意外结果。后者不进行任何强制转换,因此通常更安全。如果您想了解更多关于 JavaScript 中类型强制转换的信息,我们推荐 Angus Croll 的 Truth, Equality and JavaScript

es3
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

请改用 esversion: 3

此选项告诉 JSHint 您的代码需要符合 ECMAScript 3 规范。如果您需要您的程序在较旧的浏览器(例如 Internet Explorer 6/7/8/9)和其他旧版 JavaScript 环境中可执行,请使用此选项。

es5
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

请改用 esversion: 5

此选项启用 ECMAScript 5.1 规范 中首次定义的语法。这包括允许保留关键字作为对象属性。

esversion

此选项用于指定代码必须遵守的 ECMAScript 版本。它可以采用以下值之一

  • 3 - 如果您需要您的程序在较旧的浏览器(例如 Internet Explorer 6/7/8/9)和其他旧版 JavaScript 环境中可执行
  • 5 - 启用 ECMAScript 5.1 规范 中首次定义的语法。这包括允许保留关键字作为对象属性。
  • 6 - 告诉 JSHint 您的代码使用 ECMAScript 6 特定的语法。请注意,并非所有浏览器都实现它们。
  • 7 - 启用 ECMAScript 7 引入的语言功能。值得注意的添加:指数运算符。
  • 8 - 启用 ECMAScript 8 引入的语言功能。值得注意的添加:异步函数、共享内存和原子操作
  • 9 - 启用 ECMAScript 9 引入的语言功能。值得注意的添加:异步迭代、rest/spread 属性和各种 RegExp 扩展
  • 10 - 启用 ECMAScript 10 引入的语言功能。值得注意的添加:可选的 catch 绑定。
  • 11 - 启用 ECMAScript 11 引入的语言功能。值得注意的添加:“export * as ns from 'module'”、import.meta、空值合并运算符、BigInt 类型、globalThis 绑定、可选链和动态导入。
forin

此选项要求所有 for in 循环过滤对象的项。for in 语句允许循环遍历对象的属性名称,包括通过原型链继承的属性。此行为可能会导致对象中出现意外的项,因此通常更安全的方法是始终过滤掉继承的属性,如示例所示

for (key in obj) {
  if (obj.hasOwnProperty(key)) {
    // We are sure that obj[key] belongs to the object and was not inherited.
  }
}

要更深入地了解 JavaScript 中的 for in 循环,请阅读 Angus Croll 的 Exploring JavaScript for-in loops

freeze

此选项禁止覆盖原生对象的原型,例如 ArrayDate 等。

// jshint freeze:true
Array.prototype.count = function (value) { return 4; };
// -> Warning: Extending prototype of native object: 'Array'.
futurehostile

此选项启用对在未来版本的 JavaScript 中定义的标识符使用情况的警告。尽管在未实现它们的上下文中覆盖它们不会产生影响,但这种做法在将代码库迁移到较新版本的语言时可能会导致问题。

globals

此选项可用于指定在源代码中未正式定义的全局变量的白名单。当与 undef 选项结合使用以抑制项目特定全局变量的警告时,此选项最有用。

将条目设置为 true 可启用对该变量的读写。将其设置为 false 将触发 JSHint 将该变量视为只读。

另请参阅“环境”选项:一组用作启用常见 JavaScript 环境中定义的全局变量的简写选项。

要在单个文件中配置 globals,请参阅 内联配置

immed
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项禁止在不将立即函数调用包装在括号中的情况下使用它们。包装括号有助于代码读者理解表达式是函数的结果,而不是函数本身。

indent
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项为您的代码设置特定的制表符宽度。

latedef

此选项禁止在定义变量之前使用它。JavaScript 只有函数作用域,此外,所有变量都始终移动(或提升)到函数的顶部。这种行为可能会导致一些非常讨厌的错误,这就是为什么在显式定义变量后才使用它们更安全的原因。

将此选项设置为“nofunc”将允许忽略函数声明。

要更深入地了解 JavaScript 中的作用域和提升,请阅读 Ben Cherry 的 JavaScript Scoping and Hoisting

leanswitch

此选项禁止在 switch 语句中使用不必要的子句,例如

switch (x) {
  case 1:
  default:
    z();
}

虽然像这样的子句在技术上是有效的,但它们不会影响程序行为,并且可能表明错误的重构。

maxcomplexity

此选项允许您控制整个代码中的循环复杂度。循环复杂度衡量通过程序源代码的线性独立路径的数量。在 维基百科上阅读有关循环复杂度的更多信息

maxdepth

此选项允许您控制块的嵌套深度

// jshint maxdepth:2

function main(meaning) {
  var day = true;

  if (meaning === 42) {
    while (day) {
      shuffle();

      if (tired) { // JSHint: Blocks are nested too deeply (3).
          sleep();
      }
    }
  }
}
maxerr

此选项允许您设置 JSHint 在放弃之前生成的最大错误数量。默认为 50。

maxlen
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项允许您设置一行的最大长度。

maxparams

此选项允许您设置每个函数允许的最大形参数量

// jshint maxparams:3

function login(request, onSuccess) {
  // ...
}

// JSHint: Too many parameters per function (4).
function logout(request, isManual, whereAmI, onSuccess) {
  // ...
}
maxstatements

此选项允许您设置每个函数允许的最大语句数量

// jshint maxstatements:4

function main() {
  var i = 0;
  var j = 0;

  // Function declarations count as one statement. Their bodies
  // don't get taken into account for the outer function.
  function inner() {
    var i2 = 1;
    var j2 = 1;

    return i2 + j2;
  }

  j = i + j;
  return j; // JSHint: Too many statements per function. (5)
}
newcap
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项要求您将构造函数的名称大写。将打算与 new 运算符一起使用的函数大写只是一种约定,它可以帮助程序员从视觉上区分构造函数和其他类型的函数,从而帮助他们在使用 this 时发现错误。

不这样做不会破坏您的代码在任何浏览器或环境中的运行,但通过阅读代码来确定该函数是否应该使用或不使用 new 会有点困难。这一点很重要,因为当打算与 new 一起使用的函数在没有 new 的情况下使用时,this 将指向全局对象而不是新对象。

noarg

此选项禁止使用 arguments.callerarguments.callee.caller.callee 都使得许多优化无法实现,因此它们在未来版本的 JavaScript 中已被弃用。事实上,ECMAScript 5 禁止在严格模式下使用 arguments.callee

nocomma

此选项禁止使用逗号运算符。如果使用不当,逗号运算符会掩盖语句的值,并导致代码错误。

noempty
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

当您的代码中存在空块时,此选项会发出警告。JSLint 最初会针对所有空块发出警告,而我们只是将其设为可选。没有研究报告表明 JavaScript 中的空块会以任何方式破坏您的代码。

nonbsp

此选项会针对“不间断空格”字符发出警告。这些字符可以在 Mac 计算机上使用 Option+空格键输入,并且有可能破坏非 UTF8 网页。

nonew

此选项禁止将构造函数用于副作用。有些人喜欢调用构造函数而不将其结果赋给任何变量

new MyConstructor();

这种方法相对于简单地调用 MyConstructor 没有任何优势,因为运算符 new 创建的对象在任何地方都没有使用,因此您通常应该避免使用像这样的构造函数。

noreturnawait

异步函数在其返回值上解析。在大多数情况下,这使得返回 AwaitExpression 的结果(它本身就是一个 Promise 实例)变得不必要。为了清晰起见,通常最好直接返回异步操作的结果。值得注意的例外是在 TryStatement 的 try 子句中——有关更多信息,请参阅“await vs return vs return await”。

https://jakearchibald.com/2017/await-vs-return-vs-return-await/

predef

此选项允许您控制 JSHint 将哪些变量视为在环境中隐式定义的。使用字符串值数组对其进行配置。在变量名前面加上连字符 (-) 将从预定义变量集合中删除该名称。

JSHint 会将以这种方式声明的变量视为只读的。

此选项不能内联指定;它只能通过 JavaScript API 或外部配置文件使用。

quotmark
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项强制您在整个代码中使用一致的引号。它接受三个值:true 表示您不想强制使用一种特定的样式,但希望保持一致性;"single" 表示您只想允许单引号;"double" 表示您只想允许双引号。

regexpu

此选项会针对不包含“u”标志的正则表达式启用警告。“u”标志扩展了对 Unicode 的支持,并且还启用了更严格的解析规则。即使 JSHint 在不支持“u”标志的 JavaScript 引擎中执行,它也会强制执行这些规则。

shadow

此选项会抑制有关变量遮蔽的警告,即声明一个已在外层作用域中声明过的变量。

  • “inner” - 仅检查在相同作用域中定义的变量
  • “outer” - 也检查在外层作用域中定义的变量
  • false - 与 inner 相同
  • true - 允许变量遮蔽
singleGroups

此选项禁止在非严格需要的情况下使用分组运算符。这种用法通常反映了对一元运算符的误解,例如

// jshint singleGroups: true

delete(obj.attr); // Warning: Unnecessary grouping operator.
strict

此选项要求代码在 ECMAScript 5 的严格模式下运行。严格模式是一种选择使用受限 JavaScript 变体的方式。严格模式通过将一些不会导致错误的 JavaScript 陷阱更改为产生错误来消除它们。它还修复了导致 JavaScript 引擎难以执行某些优化的问题。

  • “global” - 在全局级别必须有一个 "use strict"; 指令
  • “implied” - 将代码视为存在 "use strict"; 指令一样进行 lint
  • false - 禁用有关严格模式的警告
  • true - 在函数级别必须有一个 "use strict"; 指令;
            this is preferable for scripts intended to be loaded in web
            browsers directly because enabling strict mode globally
            could adversely effect other scripts running on the same
            page
    
trailingcomma

当数组或对象字面量中的最后一个元素后面没有放置逗号时,此选项会发出警告。由于 IE 旧版本中的错误,过去不鼓励使用尾随逗号,但自 ES5 以来,它们的语义已标准化。(请参阅 #11.1.4#11.1.5。)现在,它们有助于防止严格使用分号有助于防止的相同视觉歧义

例如,此代码可能在上周二有效

[
    b + c
].forEach(print);

但是,如果有人向数组中添加了一个元素,并且忘记了弥补缺少的逗号,则不会抛出语法错误,并且 linter 无法确定这是错误还是有意为之的函数调用。

[
    b + c
    (d + e)
].forEach(print);

如果始终用逗号附加列表项,则不会出现这种歧义

[
    b + c,
].forEach(print);

[
    b + c,
    (d + e),
].forEach(print);
undef

此选项禁止使用显式未声明的变量。此选项对于发现泄漏和拼写错误的变量非常有用。

// jshint undef:true

function test() {
  var myVar = 'Hello, World';
  console.log(myvar); // Oops, typoed here. JSHint with undef will complain
}

如果您的变量在另一个文件中定义,则可以使用 global 指令告诉 JSHint。

unused

当您定义但从未使用变量时,此选项会发出警告。它对于常规代码清理非常有用,尤其是在与 undef 一起使用时。

// jshint unused:true

function test(a, b) {
  var c, d = 2;

  return a + d;
}

test(1, 2);

// Line 3: 'b' was defined but never used.
// Line 4: 'c' was defined but never used.

除此之外,此选项还会针对通过 global 指令声明的未使用的全局变量发出警告。

设置为 true 时,后跟已使用参数的未使用参数不会产生警告。此选项可以设置为 vars 以仅检查变量,而不检查函数参数,或者设置为 strict 以检查所有变量和参数。

varstmt

设置为 true 时,禁止使用 VariableStatements。例如

// jshint varstmt: true

var a; // Warning: `var` declarations are forbidden. Use `let` or `const` instead.

放宽选项

设置为 true 时,这些选项将使 JSHint 对您的代码发出更少的警告。

asi

此选项会抑制有关缺少分号的警告。社区中有很多关于分号的 FUD,这些 FUD 是由很多人散布的。常见的误区是分号始终是必需的(它们不是)并且它们不可靠。JavaScript 有一些关于分号的规则,所有浏览器都遵循这些规则,因此由您决定是否应该在代码中使用分号。

有关 JavaScript 中分号的更多信息,请阅读 Isaac Schlueter 的致 JavaScript 领导者关于分号的公开信以及JavaScript 分号插入

boss

此选项会抑制在预期进行比较的情况下使用赋值的警告。大多数情况下,像 if (a = 10) {} 这样的代码是拼写错误。但是,在像这样的情况下它很有用

for (var i = 0, person; person = people[i]; i++) {}

您可以通过使用括号将赋值语句括起来,以便在每次使用时忽略此错误,例如

for (var i = 0, person; (person = people[i]); i++) {}
debug

此选项会忽略代码中有关 debugger 语句的警告。

elision

此选项告诉 JSHint 您的代码使用 ES3 数组省略元素或空元素(例如,[1, , , 4, , , 7])。

eqnull

此选项会忽略有关 == null 比较的警告。当您要检查变量是否为 nullundefined 时,这种比较通常很有用。

esnext
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

请改用 esversion: 6

此选项告诉 JSHint 您的代码使用 ECMAScript 6 特定的语法。请注意,并非所有浏览器都实现这些功能。

更多信息

evil

此选项会忽略有关使用 eval 的警告。不建议使用 eval,因为它会使您的代码容易受到各种注入攻击,并且会使 JavaScript 解释器难以进行某些优化。

expr

此选项会忽略有关在通常应使用赋值或函数调用时使用表达式的警告。大多数情况下,此类代码是拼写错误。但是,规范并未禁止这样做,这就是为什么此警告是可选的。

funcscope

此选项会忽略有关在控制结构内部声明变量并在稍后从外部访问它们的警告。尽管使用 var 声明的标识符有两个实际作用域(全局和函数),但这种做法会导致不熟悉该语言的人员感到困惑,并导致难以调试的错误。这就是为什么默认情况下,JSHint 会警告在预期作用域之外使用的变量。

function test() {
  if (true) {
    var x = 0;
  }

  x += 1; // Default: 'x' used out of scope.
            // No warning when funcscope:true
}
globalstrict
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

使用 strict: "global"

此选项会忽略有关使用全局严格模式的警告。全局严格模式可能会破坏第三方小部件,因此不建议使用。

有关严格模式的更多信息,请参阅 strict 选项。

iterator

此选项会忽略有关 __iterator__ 属性的警告。并非所有浏览器都支持此属性,因此请谨慎使用。

lastsemic

此选项会忽略有关缺少分号的警告,但仅限于省略单行块中最后一个语句的分号时

var name = (function() { return 'Anton' }());

这是一个非常特殊的用例,仅在使用自动 JavaScript 代码生成器时才有用。

laxbreak
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项会忽略有关代码中可能不安全的换行符的大多数警告。它不会忽略有关逗号优先编码样式的警告。要忽略这些警告,您必须使用 laxcomma(见下文)。

laxcomma
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项会忽略有关逗号优先编码样式的警告

var obj = {
    name: 'Anton'
  , handle: 'valueof'
  , role: 'SW Engineer'
};
loopfunc

此选项会忽略有关循环内部函数的警告。在循环内部定义函数会导致错误,例如

var nums = [];

for (var i = 0; i < 10; i++) {
  nums[i] = function (j) {
    return i + j;
  };
}

nums[0](2); // Prints 12 instead of 2

要修复上面的代码,您需要复制 i 的值

var nums = [];

for (var i = 0; i < 10; i++) {
  (function (i) {
    nums[i] = function (j) {
        return i + j;
    };
  }(i));
}
moz

此选项告诉 JSHint 您的代码使用 Mozilla JavaScript 扩展。除非您专门为 Firefox Web 浏览器进行开发,否则不需要此选项。

更多信息

multistr
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项会忽略有关多行字符串的警告。多行字符串在 JavaScript 中可能很危险,因为如果您不小心在转义字符 (\) 和换行符之间放置了空格,则会导致严重错误。

请注意,即使此选项允许正确的多行字符串,它仍然会警告缺少转义字符或转义字符和空格之间存在任何内容的多行字符串。

// jshint multistr:true

var text = "Hello\
World"; // All good.

text = "Hello
World"; // Warning, no escape character.

text = "Hello\
World"; // Warning, there is a space after \
notypeof

此选项会忽略有关无效 typeof 运算符值的警告。此运算符只有一组有限的可能返回值。默认情况下,当您将其结果与无效值(通常可能是拼写错误)进行比较时,JSHint 会发出警告。

// 'fuction' instead of 'function'
if (typeof a == "fuction") { // Invalid typeof value 'fuction'
  // ...
}

除非您绝对确定不需要这些检查,否则请勿使用此选项。

noyield

此选项会忽略有关不包含 yield 语句的生成器函数的警告。

plusplus

此选项禁止使用一元递增和递减运算符。有些人认为 ++-- 降低了其编码风格的质量,并且有些编程语言(例如 Python)完全不使用这些运算符。

proto

此选项会忽略有关 __proto__ 属性的警告。

scripturl

此选项会忽略有关使用脚本目标 URL 的警告,例如 javascript:...

sub
警告 此选项已弃用,并将在 JSHint 的下一个主要版本中删除。

JSHint 将其范围限制为代码正确性问题。如果您想强制执行与代码风格相关的规则,请查看 JSCS 项目

此选项会在可以使用点表示法表示时忽略有关使用 [] 表示法的警告:person['name']person.name

supernew

此选项会忽略有关“怪异”构造的警告,例如 new function () { ... }new Object;。此类构造有时用于在 JavaScript 中生成单例

var singleton = new function() {
  var privateVar;

  this.publicMethod  = function () {}
  this.publicMethod2 = function () {}
};
validthis

当代码在严格模式下运行并且您在非构造函数中使用 this 时,此选项会忽略有关可能违反严格模式的警告。当您确定在严格模式下使用 this 是有效的时(例如,如果您使用 Function.call 调用函数),则应使用此选项(仅在函数作用域内)。

**注意:**此选项只能在函数作用域内使用。如果您尝试全局设置此选项,JSHint 将会出错。

withstmt

此选项会忽略有关使用 with 语句的警告。with 语句的语义可能会导致开发人员之间产生混淆,并导致意外定义全局变量。

更多信息

环境

这些选项让 JSHint 了解一些预定义的全局变量。

browser

此选项定义了现代浏览器公开的全局变量:从古老的 documentnavigator 一直到 HTML5 FileReader 以及浏览器领域的其它新发展。

**注意:**此选项不会公开 alertconsole 等变量。有关更多信息,请参阅选项 devel

browserify

此选项定义了使用Browserify 工具构建项目时可用的全局变量。

couch

此选项定义了CouchDB公开的全局变量。CouchDB 是一个面向文档的数据库,可以使用 JavaScript 以 MapReduce 方式进行查询和索引。

devel

此选项定义了通常用于记录简陋调试的全局变量:consolealert 等。通常最好不要在生产环境中发布它们,因为例如,console.log 在旧版 Internet Explorer 中会中断。

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 中没有意义的警告,例如文件级 use strict 语句和 console.log 语句。

nonstandard

此选项定义了非标准但被广泛采用的全局变量,例如 escapeunescape

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 保留在主要版本发布之间删除或修改它们的权利。