Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

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

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • html5
  • 알고리즘
  • mysql
  • CSS
  • 데이터 타입
  • PostgreSQL
  • React
  • koa
  • 프로그래머스
  • 하스켈
  • html
  • redis
  • Java
  • Flutter
  • Rust
  • javascript
  • 문자열
  • Til
  • go
  • Haskell

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

[Javascript] null과 undefined의 차이
프론트 엔드/Javascript

[Javascript] null과 undefined의 차이

2022. 1. 23. 20:01
728x90

Javascript의 null과 undefined의 차이점

null과 undefined는 둘 다 변수에 값이 없는 것을 나타내지만, 둘의 의미는 꽤 다릅니다.

undefined는 변수를 선언하고 값을 할당하지 않은 상태, null은 변수를 선언하고 빈 값을 할당한 상태(빈 객체)

라고 말할 수 있습니다. 즉 undefined는 자료형이 없는 상태입니다.

 

따라서 typeof를 통해 자료형을 확인해보면 null은 object로 undefined는 undefined가 출력되는 것을

확인해볼 수 있습니다.

// typeof
typeof null; // 'object' // null의 문자열
typeof undefined; // 'undefined' // undefined의 무낮열
null == undefined; // true || null 과 undefined는 동일한가?
null === undefined; // false  || null 과 undefined의 타입은 동일한가?
null === null // true 
null == null // true  // null 
!null // true  
isNaN(1 + null) // false 
isNaN(1 + undefined) // true

1. null 

null은 NULL의 symbol(심볼)이며, 의도를 가지고 변수에 null을 할당해 값이 없다는 것을 나타낸다.

null이 할당된 변수의 타입을 확인해 보면 object인 것을 확인할 수 있다.

let a = null;
console.log(a); // null
console.log(typeof a); // object

2.undefined

변수를 선언하고 값을 할당하기 전의 형태(값)이라고 볼 수 있다.(* 변수에 값이 할당되지 않음)

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

undefined가 나오는 경우의 예시

존재하지 않는 객체의 프로퍼티를 읽으려고 할 때

let obj = {};
console.log(obj.a); // undefined

존재하지 않는 배열에 엘리먼트를 읽으려고 할 때

let arr = [1, 2, 3];
console.log(arr[10]); // undefined

정리

  • undefined: 접근 가능한 스코프에 변수가 선언되었으나 현재 아무런 값도 할당되지 않는 상태이다.
    타입을 확인해보면 undefined가 뜬다.
  • null: 변수를 선언하고 'null' 이라는 빈 값을 할당한 경우이다. 타입을 확인해 보면 'object'이다.

undeclared

  • undefined: 접근 가능한 스코프에 변수 선언조차 되지 않는 상태이다. 타입을 확인해 보면 undefined이다.
  • typeof undefined는 출력하면 undefined이다.
  • type null을 출력하면 object이다. 하지만 이는 여전히 원시 타입(primitive value)로, Javascrip에서는 구현 버그로 
    간주한다.
  • undefined == null은 true이다.

 

참고 자료

 

JavaScript의 null, undefined 차이

null, undefined는 둘 다 변수에 값이 없는 것을 나타내지만, 둘의 의미는 꽤 다르다.null은 NULL의 심볼이며, 의도를 갖고 변수에 null을 할당하여 값이 없다는 것을 나타낸다. null이 할당된 변수의 타입

velog.io

 

undefined와 null의 차이점을 설명하세요 | 2ssue's dev note

undefined와 null의 차이점을 설명하세요 undefined은 변수를 선언하고 값을 할당하지 않은 상태, null은 변수를 선언하고 빈 값을 할당한 상태(빈 객체)이다. 즉, undefined는 자료형이 없는 상태이다. 따

2ssue.github.io

 

'프론트 엔드 > Javascript' 카테고리의 다른 글

[Javascript] OOP vs FP란 무엇인가?  (0) 2022.01.23
[Javascript] Javascript와 Node.js의 차이  (0) 2022.01.23
변수 타입 (var, let, const)와 스코프 연산자(scope) 개념  (0) 2022.01.21
    '프론트 엔드/Javascript' 카테고리의 다른 글
    • [Javascript] Event Loop
    • [Javascript] OOP vs FP란 무엇인가?
    • [Javascript] Javascript와 Node.js의 차이
    • 변수 타입 (var, let, const)와 스코프 연산자(scope) 개념
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바