느슨한 동등 비교와 엄격한 동등 비교
==와 === 비교의 차이를 이해합니다.
느슨한 동등 비교와 엄격한 동등 비교은(는) CoddyKit의 무료 JavaScript Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 JavaScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. JavaScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
두 동등성 연산자
JavaScript에는 두 가지 동등성 연산자가 있습니다. 엄격한 동등성은 세 등호를 사용하며 변환 없이 비교합니다. 느슨한 동등성은 두 등호를 사용하며 비교 전에 타입을 변환합니다.
console.log(1 === 1)
console.log(1 == "1")엄격한 동등성
엄격한 동등성은 타입과 값이 모두 일치할 때만 참을 반환합니다. 강제 변환은 일어나지 않습니다.
console.log(5 === 5)
console.log(5 === "5")
console.log(true === 1)느슨한 동등성의 강제 변환
느슨한 동등성은 비교하기 전에 피연산자를 공통 타입으로 변환하려고 하므로 예상 밖의 참 결과가 나올 수 있습니다.
console.log(5 == "5")
console.log(true == 1)
console.log(0 == false)숫자와 문자열
느슨한 동등성으로 숫자와 문자열을 비교하면 문자열이 먼저 숫자로 변환됩니다.
console.log("10" == 10)
console.log("10" === 10)불리언 강제 변환
느슨한 동등성에서는 불리언 값이 숫자로 변환되므로 비교 전에 참은 1이 되고 거짓은 0이 됩니다.
console.log(true == 1)
console.log(false == 0)
console.log(true == 2)널과 정의되지 않은 값
느슨한 동등성은 널과 정의되지 않은 값을 서로 같다고 취급하지만, 0 같은 다른 값과 같다고 취급하지는 않습니다.
console.log(null == undefined)
console.log(null === undefined)
console.log(null == 0)NaN의 예외
NaN은 어느 연산자를 사용하더라도 자기 자신을 포함한 어떤 값과도 같지 않습니다. NaN인지 확인하려면 Number.isNaN을 사용하세요.
console.log(NaN === NaN)
console.log(NaN == NaN)
console.log(Number.isNaN(NaN))객체 참조
객체는 내용이 아니라 참조를 기준으로 비교합니다. 속성이 같은 별개의 두 객체는 절대 서로 같지 않습니다.
const a = { x: 1 }
const b = { x: 1 }
console.log(a === b)
console.log(a === a)놀라운 느슨한 동등성 결과
느슨한 동등성은 직관에 어긋나는 결과를 만들 수 있습니다. 빈 문자열은 0과 같고, 빈 배열은 강제 변환 후 거짓과 같습니다.
console.log("" == 0)
console.log([] == false)
console.log("0" == false)엄격한 동등성 우선 사용하기
대부분의 코드 작성 지침은 숨겨진 강제 변환으로 인한 오류를 피하기 위해 기본적으로 엄격한 동등성을 사용하도록 권장합니다. 느슨한 동등성은 분명한 이유가 있을 때만 사용하세요.
const value = "42"
if (value === "42") {
console.log("matched as string")
}널 또는 정의되지 않은 값 확인하기
널과 정의되지 않은 값을 함께 확인하는 것은 느슨한 동등성의 허용되는 사용 예입니다. 널에 두 등호를 사용하는 패턴이 두 값을 모두 다루기 때문입니다.
function check(v) {
if (v == null) {
return "missing"
}
return "present"
}
console.log(check(undefined))
console.log(check(0))간단히 확인하기
동등성에 대한 지식을 확인해 보세요.
복습
복습: 세 등호는 강제 변환을 피하고, 두 등호는 강제 변환을 적용합니다.
- 엄격한 동등성은 타입과 값을 확인합니다
- 느슨한 동등성은 먼저 공통 타입으로 변환합니다
- 널은 느슨한 동등성에서만 정의되지 않은 값과 같습니다
- 기본적으로 엄격한 동등성을 우선 사용하세요
console.log(1 === 1)
console.log(1 == "1")자주 묻는 질문
“느슨한 동등 비교와 엄격한 동등 비교” 강의는 무료인가요?
네 — “느슨한 동등 비교와 엄격한 동등 비교” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 JavaScript Academy 강의 전체를 잠금 해제할 수 있습니다. JavaScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“느슨한 동등 비교와 엄격한 동등 비교”에서 뭘 배우나요?
==와 === 비교의 차이를 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 JavaScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
JavaScript Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 JavaScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“느슨한 동등 비교와 엄격한 동등 비교” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 JavaScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 JavaScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 참 같은 값과 거짓 같은 값
- 느슨한 동등 비교와 엄격한 동등 비교
- 연산에서의 암시적 형 변환
- 명시적 형 변환 기법