Я новичок в JavaScript и в настоящее время понимаю две вещи о методе parseInt():
parseInt("100") // gives 100
parseInt("2019@string") // gives 2019
Однако с чего бы parseInt("string@2019") давать NaN?
@CodeManiac Почему 2019@string нельзя преобразовать в любое значение int?
@HenryWang, это была опечатка, я имел в виду string@2019, parseInt проверяет first character, если его нельзя преобразовать в int, он вернет NaN



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете увидеть проблему, если посмотрите на Страница 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, так как он начинается с цифры.
@HenryWang Как поясняется в комментариях к исходному сообщению: «Примечание: если первый символ не может быть преобразован в число, parseInt() возвращает NaN». 2019@string подойдет. Я обновил свой ответ, чтобы исправить это.