JavaScript 변수 타입 비교 규칙
선언 스코프, 재할당 가능성, 원시값과 객체 참조, 암묵적 변환, ==와 === 차이가 실제 코드 흐름을 좌우한다.
| 개념 | 핵심 의미 | 좋은 기준 | 버그 신호 |
|---|---|---|---|
| let | 블록 스코프 재할당 변수 | 변하는 값에만 사용 | 같은 이름을 넓은 범위에서 재사용 |
| const | 재할당 금지 바인딩 | 기본 선언으로 사용 | 객체 내부 변경까지 막는다고 오해 |
| Primitive | 값 자체가 복사됨 | number, string, boolean | 타입 변환 결과를 예상 못함 |
| Object | 참조가 복사됨 | array, object, function | 얕은 복사와 mutation 혼동 |
| Compare | 동등성 비교 방식 | === 우선 사용 | ==의 암묵 변환에 의존 |
JavaScript 기초 버그는 값 자체보다 값이 바뀌는 범위, 참조 공유, 비교 방식에서 자주 생긴다.