analogcoding

Null Undefined 본문

Study JS for me/Keyword

Null Undefined

be well 2019. 11. 8. 18:46

Null & undefined

두 타입은 모두 자바스크립트에서 '값이 없음' 을 의미하지만 차이가 있습니다.

 

요약해서 설명하자면 null 과 undefined 는 차이는 등록, 저장 여부입니다.

 

null 은 값이지만 의미없는 특별한 값이 등록되어 있는 것이고,

 

undefined 는 등록이 되어있지 않기 때문에 초기화도 정의되지 않은 것입니다.

 


undefined 는 미리 선언된 전역 변수(global property)이며, null 은 선언,등록을 하는 키워드입니다.

 

undefined 는 변수를 선언만 하더라도 할당되지만 null 은 변수를 선언한 후에 null 로 값을 할당합니다.

 

undefined 는 기본적으로 값이 할당되지 않은 변수로 정의되지 않은 것, 존재하지 않는 것들의 값입니다.

 

undefined 는 데이터 타입이며 값입니다.

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

let undi = undefined
console.log(undi)  // undefined

var obj = {}
console.log(obj.foo)  // undefined

null 은 명시적으로 값이 '비어있음' 을 의미합니다. null 은 아무것도 참조하지 않습니다.

null 은 데이터 타입이며 할당되어 존재할 수 있는 값입니다.

let nul = null;
console.log(nul) // null

null & undefined 공통점

  • falsy 한 value
  • primitive type
null == undefined // true
// 강제 형변환으로 인해 아래 식도 성립하게 됩니다.
let check = (val = 'null or undefined?') => {
	console.log(val);
}

check("I don't know")             //   'I don't know'

check()                           //   'null or undefined?'

check(null)                       //    null

check(undefined)                  //   'null or undefined?'

Tip

nulltypeofobject 인 이유

https://github.com/FEDevelopers/tech.description/wiki/%E2%80%9Ctypeof-null%E2%80%9D%EC%9D%98-%EC%97%AD%EC%82%AC

 

FEDevelopers/tech.description

기술 문서 정리하는 저장소. Contribute to FEDevelopers/tech.description development by creating an account on GitHub.

github.com

 

'Study JS for me > Keyword' 카테고리의 다른 글

OOP , prototype  (0) 2019.11.19
자바스크립트 copy (객체 복사)  (0) 2019.09.19
자바스크립트 this  (0) 2019.09.08
자바스크립트 클로져 ( Closure )  (0) 2019.08.31
javascript main keyword  (0) 2019.08.14
Comments