Javascript 是否存在(c==c)为false的情况?

Javascript 是否存在(c==c)为false的情况?,javascript,Javascript,前几天我看到了这个谜语: 具有以下JavaScript代码: var c; // YOU CAN NOT CHANGE THE FOLLOWING CODE if (c===c) { alert ("YOU LOSE!"); } else { alert ("YOU WIN!"); } 通过只更改c值(在if语句之前),您必须使代码显示“YouWin!”消息 那真的有可能吗?是的,有可能 var c = NaN; NaN不等于它本身 console.log(NaN ===

前几天我看到了这个谜语:

具有以下JavaScript代码:

var c;

// YOU CAN NOT CHANGE THE FOLLOWING CODE
if (c===c) {
    alert ("YOU LOSE!");
}
else {
    alert ("YOU WIN!");
}
通过只更改c值(在if语句之前),您必须使代码显示“YouWin!”消息

那真的有可能吗?

是的,有可能

var c = NaN;

NaN
不等于它本身

console.log(NaN === NaN);
输出

false
引述

等式运算符(==和===)不能用于根据 楠。请改用Number.isNaN()或isNaN()

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true