Несколько недель назад я прочитал эту ветку ‹быстрее, чем‹ =? об операторах сравнения в C
. Было сказано, что нет никакой разницы в производительности между <
и <=
, поскольку они интерпретируются как одинаковые / похожие машинные команды.
В то же время в «лучших практиках» нашей компании было сказано, что мы всегда должны использовать «===» для сравнения вместо «==». Итак, я начал задаваться вопросом, всегда ли это уместно, поскольку я привык использовать «==» и «typeof ... ==» и не хочу менять свой способ написания: -]
Обратите внимание, что это в контексте JavaScript.
Итак, у меня есть небольшое исследование, и здесь Который оператор равенства (== vs ===) следует использовать при сравнении JavaScript? сказано, что:
Это связано с тем, что оператор равенства == выполняет приведение типа ..., что означает, что интерпретатор неявно пытается преобразовать значения, а затем выполняет сравнение.
С другой стороны, оператор идентичности === не выполняет приведение типов и, следовательно, не преобразует значения значений при сравнении
И я начал задаваться вопросом, означает ли это, что, когда я использую оператор «===», я получу хорошую производительность, так как никакие ресурсы не будут тратиться на преобразование операндов. И после того, как весь код превращается в машинные команды, означает ли это, что так же, как нет разницы в C
, когда вы используете <
и <=
, это то же самое в JavaScript и других языках?
===
. Я не вижу здесь выбора. - person Šime Vidas   schedule 11.09.2012===
быстрее, чем==
в V8, когда компилятор может доказать, что типы совпадают, выполнив анализ - последующие запуски кода могут сократить в===
, чего не могут в==
. Это деталь реализации, которая может измениться - используйте любой правильный оператор. - person Benjamin Gruenbaum   schedule 01.09.2017a
или нет - обычно=== false
быстрее, но важно избегать преждевременных оптимизаций - они также проверяют принципиально разные вещи. - person Benjamin Gruenbaum   schedule 11.04.2018