반응형
이번 11편에서는 타입 관련 실수와 내장 객체의 오용으로 발생하는 자주 겪는 오류들을 다룹니다.
✅ 1. typeof null은 왜 "object"일까?
📌 설명
자바스크립트 초기 설계 버그로 인해 typeof null은 "object"를 반환합니다. null은 원시 타입이지만 객체처럼 보이는 혼란을 줍니다.
📌 대처
null 체크는 반드시 value === null로 진행합니다.
✅ 2. Math.max()와 Math.min()의 빈 인수 처리
Math.max(); // -Infinity
Math.min(); // Infinity
📌 설명
인수가 없는 경우 Math.max()는 최솟값, Math.min()은 최댓값을 반환함으로써 잘못된 비교 결과를 낼 수 있습니다.
✅ 3. parseInt는 radix 생략 시 혼란 발생
parseInt("08"); // 8 (modern JS)
parseInt("08", 10); // 8 (명시적)
📌 설명
과거 일부 브라우저에서는 0으로 시작하는 문자열을 8진수로 해석한 경우도 있었습니다.
📌 대처
항상 radix(기수)를 명시해서 사용합니다.
✅ 4. Date 객체는 월이 0부터 시작된다
new Date(2024, 3, 1); // 2024년 4월 1일
📌 설명
Date 생성자의 월(month)은 0부터 시작합니다. 실수로 1을 더하거나 빼는 경우가 자주 발생합니다.
✅ 5. new Boolean(false)는 truthy이다
const val = new Boolean(false);
if (val) {
console.log("실행됨");
}
📌 설명
객체는 내용과 무관하게 항상 truthy입니다. new Boolean은 wrapper 객체를 생성하므로 if 조건문에서 참으로 평가됩니다.
✅ 결론
내장 객체는 자바스크립트를 강력하게 만들어주는 도구지만, 잘못 사용할 경우 원치 않는 결과를 초래할 수 있습니다. 정확한 사용법과 타입 처리의 이해는 필수입니다.
반응형
'Programing > javascript' 카테고리의 다른 글
| JavaScript 조건문 (0) | 2025.05.18 |
|---|---|
| JavaScript 반복문 (0) | 2025.05.18 |
| 함수 선언식과 함수 표현식의 차이 (2) | 2025.05.05 |
| 함정에 빠지기 쉬운 자바스크립트 문법12 (0) | 2025.05.05 |
| 함정에 빠지기 쉬운 자바스크립트 문법10 (0) | 2025.05.05 |
| 함정에 빠지기 쉬운 자바스크립트 문법9 (0) | 2025.05.05 |
| 함정에 빠지기 쉬운 자바스크립트 문법8 (1) | 2025.05.05 |
| 함정에 빠지기 쉬운 자바스크립트 문법7 (1) | 2025.05.05 |