Автор оригинала: 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.