JavaScript 비교는 때로 까다로울 수 있으며, 특히 null 및 정의되지 않음과 같은 다양한 데이터 유형을 처리할 때 더욱 그렇습니다. 오늘은 JavaScript에서 비교 연산자의 작동 방식과 ==와 === 사이의 뉘앙스를 살펴보겠습니다.
몇 가지 기본적인 비교부터 시작해 보겠습니다.
console.log(2 > 1); // true console.log(2 >= 1); // true console.log(2 < 1); // false console.log(2 == 1); // false console.log(2 != 1); // true
이러한 비교는 간단하며 예상대로 작동합니다. 하지만 null과 undefine을 혼합하면 상황이 흥미로워집니다.
null을 숫자와 비교하면 어떤 일이 일어나는지 살펴보겠습니다.
console.log(null >= 0); // true console.log(null === 0); // false
현재 상황은 다음과 같습니다.
비교 연산자(>=): >=와 같은 비교 연산자를 사용하면 JavaScript는 비교하기 전에 null을 0으로 변환합니다. 따라서 null >= 0은 0 >= 0이 되며 이는 사실입니다.
완전 항등(===): 완전 항등 연산자는 유형 변환을 수행하지 않으므로 null === 0은 null이 0과 동일한 유형이 아니므로 false입니다.
이제 undefined가 어떻게 동작하는지 살펴보겠습니다.
console.log(undefined >= 0); // false console.log(undefined == 0); // false
undefine과의 비교: null과 달리 undefine은 비교 시 0으로 변환되지 않습니다. 대신, 이 맥락에서 undefound는 "숫자가 아닌" 것으로 간주되므로 결과는 항상 false입니다.
항등 연산자(==): 느슨한 항등 연산자를 사용하는 경우에도 undefound는 0이 아닙니다. 실제로 undefound는 ==를 사용할 때만 null과 같습니다.
==(느슨한 동등): 이 연산자는 비교하기 전에 피연산자를 동일한 유형으로 변환합니다. 이것이 null == 0이 false이고 null == undefine이 true인 이유입니다.
=== (엄격한 동일성): 이 연산자는 변환 없이 값과 유형을 모두 확인합니다. 이것이 null === 0이 false이고, null === undefound도 false인 이유입니다.
코드에서 예기치 않은 동작을 방지하려면 JavaScript가 비교를 처리하는 방법을 이해하는 것이 중요합니다. 숫자를 비교하든, null 또는 정의되지 않음을 처리하든, ==와 === 중에서 결정하든, 세부 사항을 알면 더욱 예측 가능하고 안정적인 JavaScript를 작성하는 데 도움이 됩니다.
즐거운 코딩 하시고 다음편에서 만나요!!!
위 내용은 Day xploring JavaScript 비교: `==`, `===` 등 이해하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!