자바스크립트에는 값이 없다는 걸 표현할 때, null 과 undefined 두 종류가 있다.
이 차이점을 살펴보자면..
null은 의도적으로 '값이 없음'을 표현할 때 사용되고,
undefined는 값이 없다는 걸 나타낸다.
무슨 소리인지 잘 모르겠으니 예시를 통해 알아보자.
let abc;
console.log(abc);
// 출력값은 undefined
위 처럼 변수를 선언 하였으나 아무 값을 할당하지 않았다면 undefined가 출력된다 (왜냐면 값이 비어있으니까).
let abc = null;
console.log(abc);
// 출력값은 null
반면, abc라는 변수를 의도적으로 빈 값을 만들고 싶다면 null을 할당하여준다. 그래서 '이 abc 변수는 의도적으로 만든 빈 값을 가진 변수에요' 라는 것을 나타낸다.
참고로, null과 undefined를 아래처럼 동등(==)비교와, 일치(===)비교를 할 때 다른 값이 출력된다.
console.log(null == undefined);
// 출력값은 true
console.log(null === undefined);
// 출력값은 false