티스토리 뷰

null과 undefined가 뭘까?

 

null도 값이 없고 undefined도 값이 없다.

 

뭐야 그럼 같은거 아닌가? 하겠지만 다르다.

 

콘솔이 같다는데요?

 

값이 없다는 특성은 같긴 하지만 엄연히 다르다.

대체 어디가 다르냐고?

 

자료형부터 다르다.

 

undefined는 그 이름 그대로 자료형마저 정의되지 않은 상태라서 값이 없는 것이다.

null은 값이 없다는 상태로 정의된 것이다.

 

이게 뭔 소리여?

비유적인 이야기로 설명해보자.

undefined는 아직 신검을 받지 않은 사람이고

null은 병역 판정 5급, 즉 면제를 받은 사람이라고 보면 되겠다.

군대 경험이 없다는건 공통점이지만 신검 급수가 뭔지 알아보면 undefined는 아직 신검을 안 받아서 값이 없는 것이고 null은 5급 이라고 나오는 것이다.

 

자, 이제 비유적인 이야기는 되었으니 컴퓨터의 세계에서 알아보자.

https://stackoverflow.com/questions/50854916/javascript-memory-impact-of-null-vs-undefined

 

스택오버플로우에서 찾아보니 null 보다 undefined가 글자수가 많아 undefined가 4byte를 더 먹는다고 한다.

그리고 가비지 콜렉터가 null과 undefined는 인식하지않는다고 한다.

 

null과 undefined의 수행능력 차이. 같은 시간 내 시행횟수가 null이 근소하게 앞서는걸 확인할 수 있다.

차이가 아주 작지만 null이 살짝 더 앞서는 걸 볼 수 있다.

그러니 코딩할 때 값이 없는 걸 활용하고 싶다면 undefined보단 null을 애용하도록 하자.

공지사항
최근에 올라온 글