[JS] Null과 Undefined

2025. 1. 21. 16:49·기초 학습/JavaScript

Javascript의 원시타입에는 Null과 Undefined도 포함된다. 두 단어 모두 '아무것도 없다' 혹은 '문제가 있다'라는 부정적인 의미를 가진 것 같지만, 사용 목적과 의미는 명확히 구분된다.

Null

null은 어떤 값이 의도적으로 비어있음을 표현할 때 사용하며 다음과 같은 특징을 갖는다.

  • 객체로 취급: null의 자료형을 확인하면 typeof null === "object"로 출력된다. 이는 JavaScript의 오래된 설계 상의 버그로, null은 실제로 객체는 아니다.
  • Falsy값: 불리언 연산에서는 false으로 취급되는 falsy값이다.
  • 의도적 사용: 특정 변수가 아무 객체도 가리키고 있지 않음을 명시적으로 표현하고자 할 때 사용한다.
let value = null; // '값이 없다'는 것을 의도적으로 표현
console.log(value); // null

자주 볼 타입은 아니다.

Undefined

undefined는 JavaScript에서 자주 보는 타입으로, 값이 정의되지 않은 상태를 나타낸다. 아래의 경우에 undefined가 반환된다.

1. 값을 할당하지 않은 변수

let value;
console.log(value); // undefined

2. 함수에서 값을 반환하지 않은 경우

function noReturn() {}
console.log(noReturn()); // undefined

3. 객체의 존재하지 않는 프로퍼티를 참조한 경우

const obj = {};
console.log(obj.missingKey); // undefined

null과 undefined의 차이

  • undefined: 값을 할당하지 않은 상태를 의미한다. JavaScript 엔진이 자동으로 할당하는 값이다.
  • null: 값이 비어 있음을 의도적으로 표현한 상태를 의미한다. 프로그래머가 명시적으로 할당하는 값이다.
typeof null; // "object" (하위호환 유지를 위해 "null"이 아님)
typeof undefined; // "undefined"
null === undefined; // false
null == undefined; // true
null === null; // true
null == null; // true
!null; // true
isNaN(1 + null); // false
isNaN(1 + undefined); // true

'기초 학습 > JavaScript' 카테고리의 다른 글

[JS] JavaScript 함수 기초  (0) 2025.01.30
[JS] 객체 리터럴  (0) 2025.01.23
[JS] 자바스크립트의 배열  (1) 2025.01.22
[JS] 비교 연산자 ( ==와 ===의 차이)  (0) 2025.01.21
[JS] JavaScript의 문자열 정리 (규칙, 메서드, 템플릿)  (0) 2025.01.19
'기초 학습/JavaScript' 카테고리의 다른 글
  • [JS] 객체 리터럴
  • [JS] 자바스크립트의 배열
  • [JS] 비교 연산자 ( ==와 ===의 차이)
  • [JS] JavaScript의 문자열 정리 (규칙, 메서드, 템플릿)
뜐🐸
뜐🐸
패왕색 패기를 갖춘 뜐입니다~
  • 뜐🐸
    뜐의 개발 로그
    뜐🐸
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 기초 학습
        • HTML
        • CSS
        • JavaScript
        • Version Co..
        • 미니 프로젝트
        • DOM & 웹 AP..
      • CSS 프레임워크
        • Bootstrap
      • React
        • 개념 정리
        • 기초 정리
      • 알고리즘
        • Week 1: 입출..
        • 재귀
        • 백트래킹
      • javascript
      • FastAPI
        • 크롤링 서버 만들기
      • 전역 상태 관리
        • Redux
      • 한 입 리액트 챌린..
      • 영어
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    가상 선택자
    :focus
    자바스크립트 #하노이 탑 #재귀 #백준 # 11729
    백준 #코딩테스트 #1074번 #재귀 #알고리즘 # 알고리즘 문제풀이
    티스토리챌린지
    inline-block
    :hover
    :active
    오블완
    :nth-child(n)
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜐🐸
[JS] Null과 Undefined
상단으로

티스토리툴바