Home

(자바스크립트 완벽 가이드) 기본 자료형 ② null, undefined, symbol - 비어 있음과 고유 값의 모든 것

Published in javascript
March 30, 2025
2 min read
(자바스크립트 완벽 가이드) 기본 자료형 ② null, undefined, symbol - 비어 있음과 고유 값의 모든 것

안녕하세요, ‘코딩하는곰’입니다! 오늘은 자바스크립트의 기본 자료형 중에서도 특히 독특한 성격을 가진 null, undefined, symbol에 대해 깊이 있게 알아보려고 합니다. 이 세 가지 타입은 자바스크립트 개발을 하다 보면 자주 마주치지만, 그 차이점을 명확히 이해하지 못하는 경우가 많죠. 20년 경력의 개발자로서 제가 이 복잡한 개념들을 여러분의 코드에서 확실히 활용할 수 있도록 쉽게 풀어드리겠습니다.

1. null vs undefined: 비어 있음의 두 가지 얼굴

자바스크립트에서 ‘null’과 ‘undefined’는 모두 ‘값이 없음’을 나타내지만, 그 의미와 사용 시점에는 중요한 차이가 있습니다. undefined의 특징

  • 변수를 선언만 하고 값을 할당하지 않았을 때 자동으로 지정되는 값
  • 함수에서 반환 값이 없을 때 반환되는 값
  • 객체의 존재하지 않는 프로퍼티에 접근할 때 반환되는 값
let uninitializedVar;
console.log(uninitializedVar); // undefined
function noReturn() {}
console.log(noReturn()); // undefined
const obj = {};
console.log(obj.nonExistentProp); // undefined

null의 특징

  • 개발자가 의도적으로 ‘값이 없음’을 표현하기 위해 사용
  • 명시적으로 할당해야 하는 값
  • typeof 연산자 사용 시 ‘object’로 반환되는 자바스크립트의 유명한 버그
let emptyVar = null;
console.log(emptyVar); // null
console.log(typeof emptyVar); // object (주의!)

실제 개발 시 권장 사항

  • 변수의 초기화 시 undefined 대신 null을 사용하는 것이 명시적
  • 함수의 매개변수 기본값 처리 시 undefined를 체크
  • null 체크 시 typeof 대신 일치 연산자(===) 사용

(자바스크립트 완벽 가이드) 기본 자료형 ② null, undefined, symbol - 비어 있음과 고유 값의 모든 것
(자바스크립트 완벽 가이드) 기본 자료형 ② null, undefined, symbol - 비어 있음과 고유 값의 모든 것


🔍 최신 개발 트렌드를 알고 싶다면, (자바 기초) 타입 변환 완벽 가이드 자동(Widening) vs 강제(Narrowing) 형변환를 참고해보세요.

2. Symbol: ES6에서 추가된 고유한 식별자

Symbol은 ES6(ECMAScript 2015)에서 도입된 새로운 원시 타입으로, 항상 고유한 값을 보장합니다. Symbol의 핵심 특징

  • new 키워드 없이 Symbol() 함수로 생성
  • 모든 Symbol 값은 고유하며, 설명 문자열이 같아도 다른 값으로 처리
  • 객체 프로퍼티 키로 사용 가능 (은닉 프로퍼티 생성 가능)
  • 전역 Symbol 레지스트리(Symbol.for())를 통해 공유 가능
const sym1 = Symbol('description');
const sym2 = Symbol('description');
console.log(sym1 === sym2); // false
const obj = {
[sym1]: 'symbol property'
};
console.log(obj[sym1]); // 'symbol property'

Symbol의 실제 활용 사례

  1. Well-known Symbols: 자바스크립트 내장 동작 커스터마이징
    • Symbol.iterator: 객체를 이터러블로 만듦
    • Symbol.toStringTag: Object.prototype.toString() 동작 변경
class MyCollection {
*[Symbol.iterator]() {
yield 1;
yield 2;
yield 3;
}
}
const collection = new MyCollection();
console.log([...collection]); // [1, 2, 3]

(자바스크립트 완벽 가이드) 기본 자료형 ② null, undefined, symbol - 비어 있음과 고유 값의 모든 것
(자바스크립트 완벽 가이드) 기본 자료형 ② null, undefined, symbol - 비어 있음과 고유 값의 모든 것


두뇌 훈련과 스트레스 해소를 동시에 하고 싶다면, 편안한 분위기의 스도쿠 저니: 크립토 할아버지가 완벽한 선택입니다.

3. 세 가지 타입의 메모리 관리와 성능 고려사항

자바스크립트 엔진은 null, undefined, symbol을 각각 다르게 처리하며, 이에 따른 메모리 사용 패턴을 이해하는 것이 중요합니다. 메모리 할당 방식 비교

  • null과 undefined: 매우 적은 메모리 사용 (보통 특수한 내부 값으로 표현)
  • Symbol: 설명 문자열 길이에 따라 추가 메모리 사용 성능 최적화 팁
  1. 반복적으로 사용되는 Symbol은 상수로 저장
    const LOG_LEVEL = {
    DEBUG: Symbol('debug'),
    INFO: Symbol('info'),
    ERROR: Symbol('error')
    };
  2. 불필요한 Symbol 생성 피하기
  3. 메모리 누수 방지를 위해 Symbol 키 사용 시 주의 타입 체크의 정확한 방법
// 올바른 타입 체크 방법
function checkType(value) {
if (value === null) {
return 'null';
}
if (typeof value === 'undefined') {
return 'undefined';
}
if (typeof value === 'symbol') {
return 'symbol';
}
return typeof value;
}

(자바스크립트 완벽 가이드) 기본 자료형 ② null, undefined, symbol - 비어 있음과 고유 값의 모든 것
(자바스크립트 완벽 가이드) 기본 자료형 ② null, undefined, symbol - 비어 있음과 고유 값의 모든 것


최근 당첨번호와 통계를 한눈에 보고 싶다면, AI 번호 추천과 QR코드 확인이 가능한 지니로또AI를 설치해보세요.

오늘은 자바스크립트의 null, undefined, symbol이라는 세 가지 특별한 기본 자료형에 대해 깊이 있게 알아보았습니다. 이 개념들은 처음에는 혼란스러울 수 있지만, 정확히 이해하면 더 견고한 코드를 작성하는 데 큰 도움이 됩니다. 특히 Symbol은 현대 자바스크립트에서 점점 더 중요한 역할을 하고 있으니 꼭 숙지하시길 바랍니다. 다음 시간에는 또 다른 흥미로운 자바스크립트 주제로 찾아뵙겠습니다. 코딩하는곰이었습니다! 🐾

🎤 놓치면 아쉬운 대회와 전시 일정이 궁금하다면, 제10회 사천비토섬별주부전축제를 참고해보세요.









최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기
최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기



다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기
다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기



비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기
비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기




Tags

#developer#coding#javascript

Share

Previous Article
(파이썬 핵심 팁) 기본값 인자 설정과 순서 주의사항 - 코딩하는곰의 20년 경력 노하우

Table Of Contents

1
1. null vs undefined: 비어 있음의 두 가지 얼굴
2
2. Symbol: ES6에서 추가된 고유한 식별자
3
3. 세 가지 타입의 메모리 관리와 성능 고려사항

Related Posts

(실전 프로젝트) localStorage를 활용한 나만의 메모장 웹 앱 만들기 - 데이터 저장부터 불러오기까지 완벽 구현
December 30, 2025
2 min