IsNaN() против parseInt() путаница - программирование
Подтвердить что ты не робот

IsNaN() против parseInt() путаница

Есть что-то странное.

Почему
с isNaN("") Я получаю False
Но
с parseInt("") я получаю NaN
?

4b9b3361

Ответ 1

isNaN принимает целое число в качестве аргумента, поэтому JS преобразует "" в 0

parseInt принимает строку в качестве аргумента, поэтому пустая строка не является числом

Ответ 2

Это потому, что "" эквивалентен нулю в JavaScript. Попробуйте "" == 0. Это означает, что если вы попытаетесь оценить его в численном уравнении, оно будет выглядеть как 0. Когда вы проанализируете его, с другой стороны, он понимает, что там ничего нет.

В качестве альтернативы parseInt вы можете использовать Math.floor. Это даст вам 0 для "".