JavaScript

null 과 undefined 의 차이

동띠기 2020. 8. 25. 00:53
728x90
let coder;
console.log(coder);

위와 같은 코드를 출력하면 어떤 값이 나올까 ?

바로 undefined 가 나온다.

변수를 선언 후에 초기값을 주어 주지 않았으니 당연히 정의되지않았다는 표시로 undefined라고 표현이된다.

 

null은 의도적으로 비어있는 값을 표현하고 싶을 때 null 을 넣는다.

 

let coder;
console.log(coder);
// undefined
coder = null;
console.log(coder);
//null

의미는 모두 값이 없다라는 것을 지칭하는 것이지만,

선언을 하고 값을 지정하지 않은 undefined 와 의도적으로 표현한 null인 것인지의 차이다.

 

비교문을 써서 비교해보면

console.log(x == y);
console.log(x === y);

위에는 비슷한 의미 임으로 true / 아래는 일치하지 않음 으로 false가 나온다.

물론 let x = undefined; 와 같이 사용할 수 있으나 뜻을 흐릴 수 있으니 사용을 권장해야 한다.

 

쉽게 나온 예시가 있었다, 물로 이해를 시키는 것인데, 코드로 살펴보자.

let cup;
cup = '물';
cup = null;

처음에 아무것도 없는 빈 컵을 가져온 것이기 때문에 undefined라고 할 수 있다.

 

그 컵에 물을 채우고 난 후 물을 마시면 물이 사라지기 때문에 null값이 된다.

 

결국은 

 

undefined : 처음부터 없음

null : 의도적으로 없음!

728x90

'JavaScript' 카테고리의 다른 글

자바스크립트의 객체 (object)  (0) 2020.08.26
피보나치 수열 - JS풀이  (0) 2020.08.26
템플릿 문자열  (0) 2020.08.25
Javascript 내장객체  (0) 2020.03.27
[Do it] Javascript 반복문 ( 구구단 출력 )  (2) 2020.03.26