여기 두 휴지걸이가 있다. 하나는 휴지가 아예 없는 휴지걸이와 휴지가 다 떨어진 휴지걸이. 둘다 종이휴지가 없는 상황이지만 아예 다르다고 할 수 있다. 여기에서 null과 undefined가 나뉜다.
종이휴지가 없는 상태, 하지만 갈색 막대(?) 부분도 엄연한 휴지 중 하나다. 이처럼 값이 "없다"라고 "정의"가 된 값이 null이다.
null은 최초 변수에서 null로 정의하게 된다. null도 하나의 고유한 값이며 변수에 null이라고 정의를 해야 표현할 수 있다.
let isNull;
console.log(isNull);//undefined
isNull = null;
console.log(isNull); //null
또한 typeof로 null을 검사해보면 object인 값이 나온다. null도 값이라는 뜻이다. 단 value가 없다는 것을 명시해줄 뿐이다.
휴지라는 것이 아예 존재하지 않을 때는 휴지가 다 떨어졌다고 하는 것이 아닌 휴지가 없다고 하는 것이 맞다. 아예 휴지가 없는 상태, 이것을 undefined라고 한다.
let money;
console.log(money); //undefined
변수는 선언하였지만 값을 할당하지 않은 경우 전역에서는 초깃값으로 undefined를 할당해주게 된다. undefined는 undefined의 값을 가지고 있다.
흔히 테스트 케이스를 돌려보면 많이 볼 수 있는 결과값인데 존재하지 객체값을 읽으려고 할 때, 배열에서 없는 값을 지정할 때 값이 없다는 의미에서 undefined를 return해주게 된다.