null
과 undefined
는 javascript에서 '없음'을 나타내는 값을 의미한다고 한다. 의미는 같지만 목적과 사용되는 장소가 다르다고 한다.
typeof null // 'object'
typeof undefined // 'undefined'
null === undefined // false
null == undefined // true
null 의 type은 object로 되어있기 때문 null === undefined는 false를 반환 한다.
undefined
는 원시값이라고 하며, 선언 후 할 당되지 않은 변수나 값이 주어지지 않은 인수에 자동 할당 된다고 한다. 이 값은 전역 객체의 속성 중 하나이기도 하다고 한다. 호스팅시 변수 초기화단계에서 undefined로 변수가 초기화 되는 것과 관련있다고 생각한다.
[Hoisting?]
https://velog.io/@eotkds/Hoisting
다음과 같은 경우에 undefined
를 반환 한다고 한다.
값을 할당하지 않은 변수
메서드와 선언에서 변수가 할당받지 않은 경우
함수가 값을 return 하지 않았을 때
null
은 원시값중 하나로 의도적으로 비어 있음을 표현하는 것이라고 한다. undefined
는 값이 지정되지 않은 경우를 의미하지만, null
은 해당 변수가 어떤 객체도 가리키지 않는 것을 의마 한다고 한다.
[null과 undefined, https://helloworldjavascript.net, 2022년05월04일 접속]
https://helloworldjavascript.net/pages/160-null-undefined.html
[undefined와 null의 차이점을 설명하세요, GitHub, 2022년05월04일 접속]
https://2ssue.github.io/common_questions_for_Web_Developer/docs/Javascript/13_undefined&null.html