2014-01-12 2 views
0

я видел на днях эту загадку:Есть ли случай, когда (c === c) является ложным?

Имея следующий код JavaScript:

var c; 

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

Изменяя только значение с (до этого, если-заявление), вы должны сделать код отображения «YOU WIN ! ".

Действительно ли это возможно?

ответ

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 
Смежные вопросы