Автор оригинала: Shruti Kapoor.
Возможно, вы видели двойные и тройные равные знаки в JavaScript. Но что они имеют в виду?
Хорошо мало: == по своей сути конвертирует тип и === не преобразует тип.
Double равняется ( == ) проверки только на равенство ценности. Он по своей сути делает тип принуждения. Это означает, что перед проверкой значений он преобразует типы переменных, чтобы соответствовать друг другу.
С другой стороны, тройной равняется ( === ) не выполняет тип принуждения. Он проверит, сравниваются ли переменные как одинаковое значение И тот же тип.
ОК, поэтому давайте поможем вам лучше понять разницу через несколько примеров. Для каждого из них считают то, что будет результатом этих заявлений.
Пример 1:
const foo = "test" const bar = "test" console.log(foo == bar) //true console.log(foo === bar) //true
Значение и тип обоих Foo и бар такой же. Поэтому результат является правда для обоих.
Пример 2:
const number = 1234 const stringNumber = '1234' console.log(number == stringNumber) //true console.log(number === stringNumber) //false
Значение Номер и StringNumber выглядит похоже здесь. Однако тип Номер это Номер и тип StringNumber это строка Отказ Несмотря на то, что значения такие же, тип не то же самое. Следовательно, а == Проверить возвраты правда , но когда проверено на значение и Тип, значение это ложь Отказ
Пример 3:
console.log(0 == false) //true console.log(0 === false) //false
Причина: такое же значение, другой тип. Тип принуждения
Это интересный случай. Значение 0 Когда проверено с ложь такой же. Это так, потому что 0 и ложь иметь одинаковое значение для JavaScript, но при проверке типа и значение, значение ложно, потому что 0 это Номер и ложь это логический Отказ
Пример 4:
const str = "" console.log(str == false) //true console.log(str === false) //false
Значение пустой строки и ложь это же в JavaScript. Следовательно, == возвращает true. Тем не менее, тип другой и, следовательно, === Возвращает false.
Когда вы должны использовать, когда вы должны использовать ===?
Под сомнением, используйте === Отказ Это сэкономит вас от тонны потенциальных ошибок.
Если вы поддерживаете случаю использования, где вы можете быть немного снисходительным относительно типа входящих данных, а затем использовать == Отказ Например, если API принимает оба «Правда» и правда от клиента, используйте == Отказ Короче говоря, не используйте == Если у вас нет сильного корпуса для этого.
Вот удобная таблица прав истины JavaScript для вашей справки, и показать вам, насколько сложное равенство находится в JavaScript:
Если вам понравилось эту статью, обязательно следите за мной в Twitter для обновлений.
Q: Сколько места будет освобождено, когда Британия покинет ЕС? Отказ Отказ Отказ A: 1 ГБ #Devjoke #Notajoke.