1

我在 JSLint 中使用这段代码

var string = "Hello";
if (string == "Hello") {
    string = "World";
}

我收到了这个错误

Expected '===' and instead saw '=='.
if (string == "Hello") {

为什么 JSLint 会抛出这个错误?

4

2 回答 2

2

来自== 和 !=下的JSLint文档

== 和 != 运算符在比较之前进行强制类型转换。这很糟糕,因为它会导致 ' \t\r\n' == 0 为真。这可以掩盖类型错误。JSLint 无法可靠地确定 == 是否被正确使用,因此最好不要使用 == 和 != 并始终使用更可靠的 === 和 !== 运算符。

如果你只关心一个值是真还是假,那么使用简写形式。代替

(富!= 0)

说啊

(富)

而不是

(foo == 0)

(!foo)

有一个 eqeq 选项允许使用 == 和 !=。

如何告诉 JSLint 不要抛出这个错误。

使用 JSLint 指令eqeq

像这样

/*jslint eqeq: true*/

所以完整的代码看起来像

/*jslint eqeq: true*/
var string = "Hello";
if (string == "Hello") {
    string = "World";
}
于 2012-07-18T06:40:35.227 回答
0

因为 JSLint 认为==永远不应该使用(平等系统有点奇怪)

我的建议是学习如何=====工作,以及他们如何比较(检查规范)。然后,您可以自己做出最好的决定,而不是简单地标记一个语言结构,并用从不使用它

于 2012-07-18T06:43:38.820 回答