Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

Почему typeof “4px” - 2 возвращает NaN?

#javascript


Со скобками typeof ("4px" - 2) возвращает number. Это понятно, поскольку typeof NaN
это number. Непонятно, почему при отсутствии скобок (то есть typeof "4px - 2") результат NaN?
    


Ответы

Ответ 1



Здесь все дело в порядке выполнения. У арифметических операторов приоритет ниже, чем у оператора typeof. Поэтому если скобки не ставить, то компилятор неявно преобразует выражение к такому виду: (typeof "4px") - 2; Что аналогично следующему: "string" - 2; А при вычитании числа из строки результат всегда NaN (за исключением тех случаев, когда строка содержит нечто, что является числом с точки зрения языка. Например - "2", "Infinity", "-Infinity" и т.д.).

Комментариев нет:

Отправить комментарий