В этом руководстве вы узнаете разницу между строгими === и свободными == операторами равенства в JavaScript и поймете, как они сравнивают операнды.

В JavaScript мы используем тройное равенство === известное как strict equality или двойное равное ==известное как loose equality для сравнения двух или более операндов, они выглядят одинаково, но они разные.

Строгое равенство (===)

При сравнении двух операндов тройное равно=== возвращает true только в том случае, еслиоба значения и типы идентичны для двух сравниваемых операндов. Например, 20 === "20", здесь мы сравниваем число 20 со строкой "20", строгое равенство возвращает false, потому что их типы — это разные строки и числа.

В отличие от приведенного выше примера, давайте сравним 20 с 20, снова используя тройное равенство. На этот раз мы сравниваем число с другим. Таким образом, оператор тройного равенства возвращает true, потому что оба операнда имеют одинаковое значение и тип. Другие примеры перечислены ниже👇 👇 👇

Свободное равенство (==)

При использовании двойного равенства в JavaScript выполняется type coercion . Приведение типов означает, что два значения сравниваются только после попытки приведения их к общему типу.

Давайте используем свободное равенство для сравнения числа и строки. Допустим, 20 — это значение нашего числа, а строковое значение — "20". В этом случае, обо всем по порядку, JavaScript попытается преобразовать наши значения в общий тип. Строковое значение "20" можно легко преобразовать в числовое значение 20. Так как 20equals 20, оператор двойного равенства возвращает true. Найдите больше примеров ниже👇 👇 👇

Ложные значения с нечетким равенством

В Javascript есть только шесть ложных значений: false boolean, ноль 0, пустая строка "", null, undefined и NaN (не число).

  1. При сравнении любого из следующих значений falsy: false, 0 и empty string “” с нечетким равенством они всегда будут равны! Это потому, что все эти значения будут преобразованы в false boolean.

2. При сравнении null и undefined они равны только себе и друг другу. Напомним, что при попытке сравнить null с любым другим значением будет возвращено false

3. NaN не эквивалентно никакому значению, даже самому себе, оно всегда будет возвращать false при использовании свободного равенства.

Советы:

Если вам абсолютно не нужно использовать свободное равенство, в противном случае всегда лучше использовать строгое равенство.

Это все для поста, я надеюсь, вам было интересно его читать.