JS Производительность алгоритма сравнения абстрактного равенства с вычислением выражений - PullRequest
0 голосов
/ 27 ноября 2018

Какое выражение внутри оператора if будет оцениваться быстрее?

var test = true;
if( test == true ) {...}

ИЛИ

var test = true;
if( test ) {...}

Только получил информацию о Алгоритм сравнения абстрактного равенства и Алгоритм сравнения строгого равенства

Хотел узнать больше о том, как оцениваются значения Truthy / Falsy.

Любая помощь приветствуется.

Спасибо

1 Ответ

0 голосов
/ 27 ноября 2018

Второй пример может быть немного быстрее (но поскольку JS сегодня обычно сначала компилируется в байт-код и только затем оценивается, вероятно, сгенерированный байт-код будет одинаковым в обоих случаях).

Все этоначинается с Оператор if .Его первым шагом (и единственным шагом, который будет отличаться в ваших примерах) является оценка выражения в скобках.Во втором примере выражение сразу оценивается само по себе (true).В первом примере, как вы упомянули, будет использован алгоритм сравнения абстрактного равенства.Он сделает несколько шагов и вернет истину с шага 1.e.

На практике я сомневаюсь, что разница будет ощутимой.

...