Пока читал о NaN в JavaScript, я столкнулся с некоторыми примерами. Затем я начал тестировать больше, и я был удивлен результатами. Например, я задавался вопросом, почему JavaScript интерпретировать два ниже почти те же заявления по-разномуПочему результат parseInt («123abcd») и parseInt («abcd123») различаются в JavaScript?
parseInt("123abcd") // 123
parseInt("abcd123") // NaN
Почему Javascript возвращает 123 для ParseInt («123abcd») и почему NaN для другого?
Кроме того, почему
isNaN("1") //false
But
isNaN("hello") // true -----> This seems logical because hello is a not number
кажется JavaScript всегда может удивить нас!
Тем не менее это оставляет меня вопрос, почему конвенция правильно разобрать строку, начиная с числа, но не строки, оканчивающиеся с номером. Для меня 'parseInt' всегда выглядел произвольно. Почему бы не разобрать первое число в строке (например. «Hello123Bye»)? – Mouser
@Mouser, вот как это должно быть. С первого взгляда. Вы можете использовать пользовательскую функцию, чтобы делать то, что хотите. –
@Mouser Если ваш вопрос: «Почему это так?», Спросите Брендана Эйха (я предполагаю). Вместо того, чтобы ожидать разбора любых случайных цифр, которые он находит, я всегда задавался вопросом, почему они решили, что недопустимое число, например «123abcd», должно считаться действительным. Но я думаю, мы никогда не узнаем ... – Rhumborl