Я возвращаюсь к основам JavaScript! Есть один вопрос, с которым я сталкивался примерно в 90% своих интервью. Возникает вопрос: «В чем разница между двойным и тройным равенством в JavaScript?».
Давай поговорим об этом!
Оператор свободного равенства (==,! =)
Этот оператор вернет true, если два значения равны. Перед тем как провести сравнение, он преобразует значения в один и тот же тип. Это означает, что если вы сравниваете число и строку, он сначала преобразует строку в число, а затем сравнивает значения.
Пример:
24 == 24 // true 24 == '24' //true
! = действует аналогичным образом, но возвращает true, если два значения не равны.
Пример :
24 != '24' // false 24 != 25 // true 24 != '25' //true
Оператор строгого равенства (===,! ==)
Оператор строгого равенства не завершит преобразование типа до сравнения двух значений. Это означает, что если вы попытаетесь сравнить целое число и строку, оно вернет false. Давайте рассмотрим несколько примеров.
Используя ===:
22 === 22 //true 22 === '22' // false
Строгое неравенство действует так же, за исключением того, что возвращает истина, если два значения не равны. Он также не завершит разговор о типах перед оценкой.
22 !== 22 //false 22 !== 20 // true 22 !== '22' // true
Каждый раз, когда я объясняю разницу между этими двумя сравнениями на равенство, я привожу простой пример. Это полезно, поскольку я верю (или надеюсь), что показывает, что я понимаю концепцию, даже если я, возможно, нервничал во время интервью и забыл определенные ключевые слова или наткнулся на определение.
Я всегда использую следующий пример:
1 === '1' // false 1 == 1 //true
Процесс собеседования продолжается!