Со скобками typeof ("4px" - 2) возвращает number. Это понятно, поскольку typeof NaN это number. Непонятно, почему при отсутствии скобок (то есть typeof "4px - 2") результат NaN?
Здесь все дело в порядке выполнения. У арифметических операторов приоритет ниже, чем у оператора typeof.
Поэтому если скобки не ставить, то компилятор неявно преобразует выражение к такому виду:
(typeof "4px") - 2;
Что аналогично следующему:
"string" - 2;
А при вычитании числа из строки результат всегда NaN (за исключением тех случаев, когда строка содержит нечто, что является числом с точки зрения языка. Например - "2", "Infinity", "-Infinity" и т.д.).
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники