В чем разница сравнений == и ===

Операторы сравнения == и === отличаются тем, что == может сравнить числа со строками и выдавать true, а оператор === при сравнения разных типов изначально дает false.

 

То есть если сравниваете с помощью === число с не числом (строки, булевы и т.д.) не раздумывая сразу получаете false. Тип разный и дальше и нечего сравнивать.

 

А == сначало приведет к одному типу правую часть сравнения, а потом и левую и сравнить уже два одинаковых типа. true он всегда приводит к 1, а false к 0.

 

Есть проверка на отрицание != и !==

А вот проверок на больше-меньше строгих несуществует. в JS, и в других ЯП, есть только <= или  >=

 

Вот примеры сравнений для закрепления знаний (приминительно к языку программирования javascript):

 

99 == "99" выдаст true

99 == "test" // false, т.к. строка приведется к числу типа NaN

1 == true // true, т.к. тру приведется к 1

1 == "" // false, т.к. пустая строка то 0

"1" == true // true, сначала сравнит "1" == 1, а след. шагом "1" приведется к 1 и будет сравнения 1 == 1

undefined == null // true, т.к. у обоих отсутствую значения

"true" == true // false, т.к. приводится в конце концов к 0 == 1 (сначала правую часть true к 1, а затем левую строку к числу, строковая true это 0)

 

И самое простое, сравнение тройное === (по другому называется "Строгое равенство", оператор "тождественности"):

 

"21" === 21 // false, т.к. разные типы

"0" === 0 // false, т.к. разные типы

"0" === false // false, т.к. разные типы

"true" === true // false, т.к. разные типы

true === (1 === "1") // false, т.к. разные типы

 

 

При сравнении объектов == и === работают и одинаково и выдают true если ссылки двух сравниваемых переменных указывают на один и тот же объект.



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы