javascript

Undefined VS Null

Bittersweet- 2022. 4. 8. 12:07
728x90

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

즉, undefined는 자료형이 없는 상태이다.

null과 undefined는 둘다 Javascript의 여섯가지 기본값에 포함되며, Javascript의 falsy value에 포함된다.

 

여섯가지 기본값(Six primitive value in Javascript)

  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol

 

falsy value

  • false
  • 0 (zero)
  • "" (empty)
  • null
  • undefined
  • NaN (Not a Number)

 

 

typeof를 통해 자료형을 확인해보면

typeof null // 'object'
typeof undefined // 'undefined'

 

 

undefined

  • 값을 할당하지 않은 변수
  • 메서드와 선언에서 변수가 할당받지 않은 경우
  • 함수가 값을 return 하지 않은 경우

undefined는 원시값(primitive Type)으로 선언 후 값을 할당하지 않은 변수나 값이 주어지지 않은 인수에 자동으로 할당된다.

전역 객체의 속성 중 하나로, 전역 스코프에서의 변수이기도 하다.

 

 

null

null은 원시값(primitive Type) 중 하나로, 존재하지 않는 값의 Javascript 리터럴 표현이다. 다시 말하면, 어떤 값이 의도적으로 비어있음을 표현하며, 반드시 할당해야 한다.

 

undefined는 값이 지정되지 않은 경우를 의미하지만, null은 해당 변수가 어떤 객체도 가리키고 있지 않다는 것을 의미한다.

*null은 undefined 처럼 전역 객체의 속성 중 하나가 아니라 리터럴 값이다.

 

참고.

null === undefined // false
null == undefined // true

!null // true

isNaN(1 + null) // false
isNaN(1 + undefined) // true

 

 

null 값으로 데이터 초기화

// Number 변수 초기화
let data1 = 0;

// String 변수 초기화
let data2 = "";

// Boolean 변수 초기화
let data3 = false;

// Object 변수 초기화
let data4 = null;
// 이런 경우 소스코드 어딘가에서 이 변수에 클래스의 인스턴스를 대입

 

'javascript' 카테고리의 다른 글

[array] reduce() 사용법 및 예제  (0) 2022.04.14
[array] 배열 메서드 모음  (0) 2022.04.14
for of VS for in  (0) 2022.03.15
정규 표현식 Regex  (0) 2022.02.17
아코디언 메뉴  (0) 2022.02.17