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

210
26 февраля 2018, 03:09

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

Answer 1

Здесь все дело в порядке выполнения. У арифметических операторов приоритет ниже, чем у оператора typeof.

Поэтому если скобки не ставить, то компилятор неявно преобразует выражение к такому виду:

(typeof "4px") - 2;

Что аналогично следующему:

"string" - 2;

А при вычитании числа из строки результат всегда NaN (за исключением тех случаев, когда строка содержит нечто, что является числом с точки зрения языка. Например - "2", "Infinity", "-Infinity" и т.д.).

READ ALSO
parseInt(null, 24) === 23. Почему?

parseInt(null, 24) === 23. Почему?

Каким образом преобразованные в число NaN и 24 трансформировались в 23?

225
Шифрование в JS

Шифрование в JS

Я так предпологаю что этот код расшифровывает строку, но как им можно воспользоваться? Я не особо понимаю в JS, поэтому прошу помощи

196
Вернуть строки из массива

Вернуть строки из массива

Друзья, здравствуйтеСтолкнулся с проблемкой, нужно взять из исходного массива несколько значений и поместить их впереди, при этом вернуть...

219
React: удаление элемента из state родителя

React: удаление элемента из state родителя

Есть список, каждый элемент которого является компонентом (Item)Список строится из state родителя (List)

221