Чтоб делать так, например:
function func(number){
number *= 2;
if( number > 1 ){
return 1
}else if( number < 1 ){
return -1
}else if( number == 1 ){
return 0
}
return 'wtf?'
}
alert(
func('not a number')
);
Любое сравнение с NaN вернёт false, даже с самим собой. Это позволяет делать много штук, если умеючи.
Однако основной смысл введения NaN в самой парадигме js - минимизация вреда от ошибочных данных, т.е. программа должна
хоть как-то работать, независимо от того, что там наговнокодил очередной индус. Это не делает языку чести, зато сильно понижает порог вхождения, что от него и требовалось изначально.)