有(c === c)假的情况吗?

时间:2014-01-12 12:36:44

标签: javascript

前几天我看到这个谜语:

拥有以下JavaScript代码:

var c;

// YOU CAN NOT CHANGE THE FOLLOWING CODE
if (c===c) {
    alert ("YOU LOSE!");
}
else {
    alert ("YOU WIN!");
}

通过仅更改c值(在if语句之前),您必须使代码显示“YOU WIN!”消息。

这真的有可能吗?

2 个答案:

答案 0 :(得分:4)

NaN不等于自己。

console.log(NaN === NaN);

<强>输出

false

NaN's MDN docs

引用
  

等式运算符(==和===)不能用于测试值   NaN的。使用Number.isNaN()或isNaN()代替。

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

答案 1 :(得分:3)

是的,这是可能的。

var c = NaN;