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

Пусть вы хотите сравнивать так, чтобы число в кавычках не было равно такому же числу без кавычек. Говоря другими словами, вы хотите сравнивать так, чтобы сравнение было не только по значению, но и по типу данных.

Для этого вместо оператора `==` следует использовать оператор `===`. В следующем примере при сравнении строки `'3'` и числа `3` условие будет ложным, так как переменные, хотя и равны по значению, но не равны по типу:

`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('---'); }`

Разница между оператором `==` и оператором `===` проявляется именно тогда, когда значения одинаковые, но разный тип данных. В остальных случаях эти операторы работают одинаково. К примеру, при сравнении разных чисел, конечно же, выведется `'---'`:

`if (2 === 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 = 3; if (test1 === test2) { console.log('+++'); } else { console.log('---'); }`
←→
↑
en ru