문제 1: "123" == 123 =?
정답은 true ✅ 입니다.
이유:
== (느슨한 비교)는 타입을 자동으로 변환한 뒤 비교함"123" → 숫자 123 으로 변환123 == 123 → 같으므로 true문제 2: "123" === 123 =
정답은 false ❌ 입니다.
이유:
=== 는 엄격한 비교 → 타입까지 비교"123" → 문자열, 123 → 숫자문제 3: null == undefined =
정답은 true ✅ 입니다.
이유:
== (느슨한 비교)는 null과 undefined를 비교할 때 예외적으로 같다고 처리
다른 값으로 변환하지 않고 그냥 서로 같다고 판단함
문제 4: null === undefined =
❌ false 입니다.
이유:
=== (엄격 비교, strict equality) 연산자는 자료형까지 동일해야 true를 반환합니다.null은 object 타입, undefined는 undefined 타입이므로 자료형이 다릅니다.null === undefined는 false가 됩니다.문제 5: 0 == false =
0 == false의 정답은 ✅ true 입니다.
이유:
== (느슨한 비교)에서는 서로 다른 타입일 때 타입 변환을 수행합니다.0은 숫자, false는 불리언이므로, false가 숫자 0으로 변환됩니다.0 == 0이 되어 결과는 true가 됩니다.문제 6: 0 === false =
0 === false의 정답은 ❌ false 입니다.
이유:
=== (엄격 비교, strict equality) 연산자는 값과 자료형 모두 같아야 true를 반환합니다.0은 number 타입, false는 boolean 타입이므로 자료형이 다릅니다.0 === false는 false가 됩니다.문제 7: "" || "값" =
"" || "값"의 정답은 ✅ "값" 입니다.
이유:
|| (OR 연산자)는 왼쪽 값이 falsy면 오른쪽 값을 반환합니다."" (빈 문자열)은 falsy 값입니다."값"이 반환됩니다.즉, 결과는 "값"입니다.
문제 8: "" ?? "값" =
"" ?? "값"의 정답은 ✅ "" 입니다.
이유:
?? (Nullish Coalescing 연산자)는 왼쪽 값이 null 또는 undefined일 때만 오른쪽 값을 반환합니다."" (빈 문자열)은 null도 undefined도 아니므로 그대로 반환됩니다.따라서 결과는 "" 입니다.
문제 9: 0 || 42 =
0 || 42의 정답은 ✅ 42 입니다.
이유:
|| (OR 연산자)는 왼쪽 값이 falsy이면 오른쪽 값을 반환합니다.0은 falsy 값이므로, 오른쪽 값인 42가 반환됩니다.결과는 42 입니다.
문제 10: 0 ?? 42 =
0 ?? 42의 정답은 ✅ 0 입니다.
이유:
?? (Nullish Coalescing 연산자)는 왼쪽 값이 null 또는 undefined일 때만 오른쪽 값을 반환합니다.0은 null도 undefined도 아니므로 그대로 반환됩니다.결과는 0 입니다.
💡