Вы когда-нибудь сравнивали два значения в каком-то условном выражении в своем Javascript (я думаю, мы все делаем это постоянно), и вы не получали того, что ожидали?

Нам нужно все время сравнивать два значения, и у нас есть несколько способов сделать это, но здесь мы рассмотрим эти два оператора: «==» и «===». На первый взгляд эти два оператора могут выполнять одно и то же, возвращая логическое значение, если два значения равны или нет. Тем не менее, есть большая разница, и важно понимать различия.

Вы также можете использовать ‘!=’ и ‘!==’ для всего, что мы здесь обсуждаем.

Свободное равенство

Во-первых, давайте посмотрим на «==». Вы услышите, что это называется оператором «свободного равенства».

Чего ждать? Почему все это правда?

Самое важное, что нужно помнить, это то, что Javascript делает, называется приведением типов. При использовании этого оператора Javascript возьмет эти операнды и выполнит сравнение только после попытки преобразовать их в общий тип.

Приведение типов может быть проблематичным для нас, разработчиков Javascript. В конце концов, именно поэтому многие используют Typescript для создания сильных типов во время разработки.

Если мы ждем некоторого значения для определения условного случая или условного рендеринга, мы вполне можем получить true или false, когда мы этого не ожидаем, возможно, сломав что-то или разорвав не ту вещь (или ничего).

Строгое равенство

Теперь идет оператор ‘===’. Теперь это будет оценивать два операнда без приведения типов.

Операнды разных типов считаются разными. Он вернет true только в том случае, если и значение, и тип совпадают для обоих операндов. Это важно, потому что нам не нужно беспокоиться о том, что приведение типов в Javascript дает нам ложное положительное (или отрицательное) значение, что делает ваш код чуть более типобезопасным и явным.

Давайте посмотрим на эти console.logs, сравнивая те же значения, что и раньше, но теперь со строгой проверкой на равенство.

Как мы видим, эти вычисления гораздо более явные и оставляют меньше места для маневра с приведением типов в Javascript. Если мы будем помнить об этом, мы сможем избежать ошибок в нашем коде, которые могут быть связаны с «==» и тем, как Javascript обрабатывает два операнда в этой ситуации.

Вот отличный ресурс, который вы можете добавить в закладки для справки.



Я хотел бы услышать ваши мысли по теме.

Связаться со мной.