스스로에게 2023. 6. 13. 11:05

둘 다 없음을 나타내는 값인데 뭐가 다를까 

 

undefined : 일반적으로는 자바스크립트 엔진에서 값이 있어야 할 것 같은데 없는 경우, 자동으로 부여, 직접 지정할 수도 있는데 엔진이 그런건지 사용자가 그런건지 확인할 수 없기에 '없다'라는 것을 명시적으로 표현할 땐  사용을 하지 말자  

  • 변수에 값이 지정되지 않은 경우, 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때
  • .이나 []로 접근하려 할 때, 해당 데이터가 존재하지 않는 경우
  • return 문이 없거나 호출되지 않는 함수의 실행 결과

null : ‘없다’를 명시적으로 표현할 때 사용한다

console.log(typeof(null)) // object

이건 유명한 JS 자체 버그다 그리고 JS에서는 대소문자를 구분해 null, Null, NULL 셋 모두 다른 값이니 주의하자