为什么在JavaScript中,[NaN].includes(NaN)返回true?

7 浏览
0 Comments

为什么在JavaScript中,[NaN].includes(NaN)返回true?

我对JavaScript中的NaN的 "奇怪" 用法很熟悉,即NaN === NaN总是返回false,如这里所述。因此,不应该使用===进行NaN的比较,而应该使用isNaN(..)

所以当我发现

> [NaN].includes(NaN)
true

这似乎是不一致的。为什么会有这种行为?

它是如何工作的?includes方法是否专门检查isNaN

0