Почему parseInt(string@2019) возвращает NaN в JavaScript?

Я новичок в JavaScript и в настоящее время понимаю две вещи о методе parseInt():

parseInt("100") // gives 100
parseInt("2019@string") // gives 2019

Однако с чего бы parseInt("string@2019") давать NaN?

w3schools.com/jsref/jsref_parseInt.asp: «Примечание: если первый символ не может быть преобразован в число, функция parseInt() возвращает NaN».
JW. 20.05.2019 03:35

@CodeManiac Почему 2019@string нельзя преобразовать в любое значение int?

Henry Wang 20.05.2019 03:38

@HenryWang, это была опечатка, я имел в виду string@2019, parseInt проверяет first character, если его нельзя преобразовать в int, он вернет NaN

Code Maniac 20.05.2019 03:39
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
295
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете увидеть проблему, если посмотрите на Страница W3Schools для parseInt:

If the first character cannot be converted to a number, parseInt() returns NaN.

Вот почему следующее возвращает NaN:

console.info(parseInt("O123"));

Но если у вас есть несколько чисел в строке, разделенных нецифровым символом, то это не приведет к ошибке - оно просто вернет первое число:

Only the first number in the string is returned!

console.info(parseInt("12b34"));

Эта информация также находится в Страница MDN для parseInt:

If the first character cannot be converted to a number, NaN is returned.

Функция parseInt принимает строку в качестве входных данных и пытается преобразовать ее в число. Вот несколько примеров использования parseInt для преобразования строки в число. Ваш второй пример parseInt("string@2019") возвращает NaN, потому что это string@2019 недопустимый тип. Попробуйте просто сделать parseInt("2019").

Вы можете узнать больше о parseIntздесь.

Не могли бы вы объяснить, почему 2019@string нельзя преобразовать в int? Я думал, что можно разобрать 2019@string, так как он начинается с цифры.

Henry Wang 20.05.2019 03:40

@HenryWang Как поясняется в комментариях к исходному сообщению: «Примечание: если первый символ не может быть преобразован в число, parseInt() возвращает NaN». 2019@string подойдет. Я обновил свой ответ, чтобы исправить это.

asportnoy 20.05.2019 03:42

Другие вопросы по теме