我在JSLint中使用此代码
var string = "Hello";
if (string == "Hello") {
string = "World";
}
我收到此错误
Expected '===' and instead saw '=='.
if (string == "Hello") {
为什么JSLint会抛出此错误?
答案 0 :(得分:2)
来自 ==和!=
下的JSLint docs==和!=运算符在比较之前输入强制。这是不好的 因为它导致'\ t \ r \ n'== 0为真。这可以掩盖类型 错误。 JSLint无法可靠地确定是否正在使用== 正确的,所以最好不要使用==和!=并始终使用 更可靠的是===和!==运算符。
如果您只关心某个值是真实的还是虚假的,那么请使用短片 形成。而不是
(foo!= 0)
只是说
(富)
而不是
(foo == 0)
说
(!富)
有一个eqeq选项允许使用==和!=。
如何告诉JSLint不要抛出此错误。
使用JSLint指令 eqeq
像这样/*jslint eqeq: true*/
所以完整的代码看起来像
/*jslint eqeq: true*/
var string = "Hello";
if (string == "Hello") {
string = "World";
}
答案 1 :(得分:0)
因为JSLint认为永远不应该使用==
(等式系统有点怪异)。
我的建议是了解==
和===
的工作方式,以及它们的比较方式(check the specification)。 然后,您可以自己做出最佳决策,而不是简单地使用从不使用来标记语言结构。