3. Операторы сравнения


Операторы равенства

let a = 5;
let b = "5";

// Нестрогое сравнение (==) - сравнивает значения с приведением типов
console.log(a == b);  // true (5 равно "5" после преобразования)
console.log(0 == false); // true
console.log("" == false); // true
console.log(null == undefined); // true

// Строгое сравнение (===) - сравнивает значения БЕЗ приведения типов
console.log(a === b); // false (number !== string)
console.log(0 === false); // false (number !== boolean)
console.log(null === undefined); // false

// Неравенство
console.log(a != b);  // false (нестрогое)
console.log(a !== b); // true (строгое)

Операторы больше/меньше

let x = 10;
let y = 5;

console.log(x > y);  // true
console.log(x < y);  // false
console.log(x >= y); // true (больше или равно)
console.log(x <= y); // false

// Строки сравниваются посимвольно в лексикографическом порядке
console.log("а" > "я"); // false (Unicode порядок)
console.log("abc" > "abd"); // false (сравнивается посимвольно)

// Особые случаи
console.log("2" > 1); // true (строка "2" преобразуется в число)
console.log("01" == 1); // true
console.log(true == 1); // true
console.log(false == 0); // true