Есть исходные данные в задаче:
var pin = "12345e", arr = [];
arr = pin.split("");
Почему в следующем if statement мы получаем "This is a number!"?
if (Number(arr[5]) == NaN) {
console.log("This is not a number!");
} else {
console.log("This is a number!");
}
Потому, что по аналогии с SQL NULL проверка NaN === NaN всегда возвращает false. Для проверки на равенствоNaN нужно использовать функцию isNaN()
var pin = "12345e",
arr = [];
arr = pin.split("");
if (isNaN(Number(arr[5]))) {
console.log("This is not a number!");
} else {
console.log("This is a number!");
}
А значение NaN по стандарту устроено так, что сравнения ==, <, >, <=, >= и даже === с ним возвращают false.
Ref: learn.javascript.ru
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости