# Неравенство по значению и типу в JavaScript

Кроме оператора `!=` существует также оператор `!==`, учитывающий тип при сравнении. Давайте рассмотрим различия между ними на примерах.

Пусть с помощью оператора `!=` сравниваются два числа `3`. Данный оператор сравнивает значения на то, что они НЕ равны. Так как наши значения как раз-таки равны, то условие будет ложным:

`if (3 != 3) { console.log('+++'); } else { console.log('---'); // сработает это }`

Пусть теперь одно из наших значений будет в кавычках. В этом случае оператор `!=` все равно посчитает их равными (так как совпадает значение, а тип не важен для данного оператора) и опять условие будет ложным:

`if ('3' != 3) { console.log('+++'); } else { console.log('---'); // сработает это }`

Давайте теперь сравним два числа `3` с помощью оператора `!==`. Он также посчитает их равными:

`if (3 !== 3) { console.log('+++'); } else { console.log('---'); // сработает это }`

А вот если теперь одну из троек взять в кавычки, то оператор `!==` посчитает наши тройки неравными, так как, хотя значения их и совпадают, но у них разный тип:

`if ('3' !== 3) { console.log('+++'); // сработает это } else { console.log('---'); }`

Не запуская код, определите, что выведется в консоль:

`let test1 = '3'; let test2 = '3'; if (test1 != test2) { console.log('+++'); } else { console.log('---'); }`

Не запуская код, определите, что выведется в консоль:

`let test1 = '3'; let test2 = '3'; if (test1 !== test2) { console.log('+++'); } else { console.log('---'); }`

Не запуская код, определите, что выведется в консоль:

`let test1 = 3; let test2 = '3'; if (test1 != test2) { console.log('+++'); } else { console.log('---'); }`

Не запуская код, определите, что выведется в консоль:

`let test1 = 3; let test2 = '3'; if (test1 !== test2) { console.log('+++'); } else { console.log('---'); }`

Не запуская код, определите, что выведется в консоль:

`let test1 = 3; let test2 = 2; if (test1 !== test2) { console.log('+++'); } else { console.log('---'); }`
←→
↑
en ru