Во многих случаях это, по сути, не имеет ничего общего с тем фактом, что процессоры могут сравниваться с нулем быстрее, чем другие сравнения.
Это потому, что только несколько движков Javascript (те, что в списке JIT) фактически генерируют код машинного языка.
Большинство движков Javascript создают внутреннее представление исходного кода, которое они затем интерпретируют (чтобы получить представление о том, на что это похоже, посмотрите в нижней части этой страницы на SpiderMonkey в Firefox). Обычно, если фрагмент кода делает практически то же самое, но приводит к более простому внутреннему представлению, он будет работать быстрее.
Имейте в виду, что при таких простых задачах, как сложение / вычитание единицы из переменной или сравнение переменной с чем-либо, издержки интерпретатора при переходе от одной внутренней «инструкции» к следующей довольно высоки, поэтому меньше «инструкций» ", которые используются внутренним движком JS, тем лучше.