자바스크립트의 자료형에는
문자열(String)
숫자열(Number)
불린(Boolean)
외에도
null과 undefined 가 있다
이 둘은 자바스크립트에서 '값이 없다' 라는 뜻을 가지고 있다
이 둘의 차이
null은 '값이 없다'라는 것을 의도적으로 표현 할때 사용하는 값이고
undefined는 직접 값을 표현 하기보다 코드를 실행하며 값이 없다는 것을 확인 하는 값이다
자바스크립트로 코딩을 하다보면 많이 볼 수 있는 것들이라고 한다
이코드를 실행 해보면
undefined 가나온다 자바스크립트에서는 값이 주어지지 않은 변수에 기본적으로 undefined 값을 가지고 있다
다시말해 undefined는 선언을 한 다음 값을 정해주지 않았다는 것을 의미한다 이렇게 지정된 값을 확인할 수 없다고 나온다
코드를 작성 하는 사람이 비어있는 값을 표현하고 싶을 때는 이렇게 null; 이라는 값을 넣어주면 된다
다시말해 null은 의도적으로 없다는 값을 지정할 떄 사용 하는 자료형이다
의미는 모두 값이 없다를 표현하는 값이지만
코드를 작성 할 때 선언 만 하고 하무것도 지정하지 않은 값인지(undefined) 혹은 값이 없음을 의도적으로 표현한 것인지(null)
가 이 둘을 구분하는 가장큰 차이점이라고 한다
이 코드를 실행 하면 어떻게 될까
동등(==) 비교를 하게되면 둘다 비슷한 의미를 가지기 때문에 true가 출력이 되지만
일치(===) 비교를 하게되면 서로 다른 자료형 이기 때문에 false가 출력이 된다
undefined 값을 직접 사용하는 것도 코드를 실행하는데는 큰 문제가 없다
이렇게 잘 출력이 되듯이 하지만 이런방식을 null과 undefined를 구분하는데 혼란을 주기 때문에
의도적으로 값이 없다는 것을 표현하려면 null을 사용해야 한다
비유적으로 물을 마시기 위해 컵을 가져옴 그때 비어있는 상황을 undefined 라고함
그리고 물을 마시기 위해 물을 담음 그리고
물을 마시는건 의도적으로 컵을 비우는 것이다 그 상황을 null
쉽게 요약하면
null - 의도적으로 없음!
undefined - 처음부터 없음!