为什么在确定类型相同时使用===?

pim*_*vdb 6 javascript types equality jslint

似乎必须尽可能使用严​​格相等运算符 - 我将代码放在JSLint中并得到以下反馈.

码:

function log() {
    console.log(arguments.length == 1 ? arguments[0] : arguments);
}
Run Code Online (Sandbox Code Playgroud)

反馈JSLint:

Problem at line 2 character 34: Expected '===' and instead saw '=='.
Run Code Online (Sandbox Code Playgroud)

我很想知道这里===有什么优势==.基本上,.length返回a Number,1也是一个Number.您可以100%确定,因此===只是一个冗余的额外令牌.此外,在您知道类型总是相同的情况下检查类型也没有性能优势.

那么在===这里使用背后的原因究竟是什么呢?

And*_*rea 4

唯一的原因是你不必考虑你所做的比较是否会涉及强制。如果您坚持使用===,您就少了一件需要担心的事情。

当然不是所有人都同意。这就是为什么您可以在 JSlint 中禁用特定检查(如果您确定自己在做什么)。