둘 다 없음을 나타내는 값인데 뭐가 다를까
undefined : 일반적으로는 자바스크립트 엔진에서 값이 있어야 할 것 같은데 없는 경우, 자동으로 부여, 직접 지정할 수도 있는데 엔진이 그런건지 사용자가 그런건지 확인할 수 없기에 '없다'라는 것을 명시적으로 표현할 땐 사용을 하지 말자
- 변수에 값이 지정되지 않은 경우, 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때
- .이나 []로 접근하려 할 때, 해당 데이터가 존재하지 않는 경우
- return 문이 없거나 호출되지 않는 함수의 실행 결과
null : ‘없다’를 명시적으로 표현할 때 사용한다
console.log(typeof(null)) // object
이건 유명한 JS 자체 버그다 그리고 JS에서는 대소문자를 구분해 null, Null, NULL 셋 모두 다른 값이니 주의하자
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
this와 this바인딩 (0) | 2023.06.14 |
---|---|
실행 컨텍스트 (스코프, 호이스팅, 렉시컬 환경) (0) | 2023.06.13 |
깊은 복사와 얕은 복사 (0) | 2023.06.13 |
데이터 타입과 메모리 (0) | 2023.06.12 |
Set (0) | 2023.05.24 |