assign
210
2021-08-27 18:08:43 작성 2021-08-27 18:08:58 수정됨
5
205

js null 과 undefined


안녕하세요 js 공부를 차근차근 하는중입니다

책이나, 구글 자료들을 보면 null은 개발자가 명시적으로 값이 비어있음을 나타내려고 사용하고, undefined 는 자바스크립트 환경 내에서 기본적으로 값이 할당되지 않은 변수가 해당된다고 이해하였습니다. 

즉 간단하게 개발자가 의도적으로 비우는값은 null 의도적이지 않게 비게된 값 undefined 정도로 생각하였습니다. 

그런데 앞서 간단한 코딩을 해보면서 document.getelementbyid("id이름").innerhtml 등을 사용할때 id 이름에 해당하는 id 가 없으면 개발자 코드에서 null is not a object 라는 말이 나옵니다. 

이를 제가 생각했을때 없는 값을 참조하려 하니 dom 에서 null 이 나오게 되어 null 의 innerhtml 을 참조하게 되어 저런 경고 문구가 나오는것이라고 보았습니다.

이렇게 이해하게 되면 null 이 dom에서 없는 프로퍼티를 불러올때 사용되어서 앞선 null의 정의와  undefined 의 정의안에 포함이 안되는 상황에서 null 이 쓰인것 같습니다. 

따라서 궁금한점은  null 이라는것이 기본적으로 개발자가 의도적으로 넣는 값이라고 하였는데, 앞선 id 가 잘못된 경우에는 null 을 넣은적이 없는데, undefined 가 아니라 왜  null 이 나오는것이 궁금합니다. 

제가 이해한 null 과 undefined 가 틀린것인지, 아니면 dom 트리에 대해서 제가 이해가 부족한것인지, 아니면 브라우저 소스분석의 오류코드에 대한 분석이 틀린것인지 알려주시면 감사할것같습니다. 

0
  • 답변 5

  • devprkms
    567
    2021-08-27 18:19:05

    null - 없는 값, no value

    undefined - 정의되지 않음, 값을 할당하지 않음


    document.getElementById("없는값") = null

    let nodef;

    console.log(nodef) = undefined


    전 이렇게 이해하고있습니다.

  • visualkhh
    4k
    2021-08-27 18:29:00

    널: 찾으려는데 없다

    언디파인: 찾아보니 "선언" 안되어있네

    명확하게 요청했을시 찾을수 없을때 null로 명확하게 대답을 해주는것같습니다 (만든 사람 사상)

    우리도 거기에 맞게 만든이 의도에따라 사용하면될것같아요 

  • kenu
    56k
    2021-08-27 19:06:13 작성 2021-08-27 19:13:47 수정됨

    from: https://stackoverflow.com/a/57249968

  • kenu
    56k
    2021-08-27 21:16:39

    변수는 있는데, 값이 없으면 null

    변수가 없으면 undefined


  • assign
    210
    2021-08-27 22:35:46
    다들 너무 감사드립니다 덕분에 개념 정확하게 잡을수 있을것 같습니다 
  • 로그인을 하시면 답변을 등록할 수 있습니다.