ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • undefined, null type
    JavaScript/JS 2022. 5. 2. 15:52

    undefined 타입

    var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화된다.

    다시 말해, 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지 빈 상태(대부분 비어 있지 않고 쓰레기 값이 들어 있다)로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화한다. 따라서 변수를 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환된다.

     

    var foo;
    console.log(foo); // undefined

     

    이처럼 undefined는 개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값이다.

    변수를 참조했을 때 undefined가 반환된다면 참조한 변수가 선언 이후 값이 할당된 적이 없는, 즉 초기화되지 않은 변수라는 것을 간파할 수 있다.

     

     

    null 타입

    프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다. 변수에 null을 할당하는 것은 변수가 이전에  참조하던 값을 더 이상 참조하지 않겠다는 의미다. 이는 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며, 자바스크립트 엔진은 누구도 참조하지 않는 메모리 공간에 대해 가비지 콜렉션을 수행할 것이다.

     

    var foo = 'Anko';
    
    // 이전 참조를 제거. foo 변수는 더 이상 'Anko'를 참조하지 않는다.
    // 하지만 유용해 보이지 않으므로, 변수의 스코프를 좁게 만들어 변수 자체를 재빨리 소멸시키는 편이 낫다.
    foo = null;

     

    함수가 유효한 값을 반환활 수 없는 경우 명시적으로 null을 반환하기도 한다. 예를 들어, HTML 요소를 검색해 반환하는 document.querySelector 메서드는 조건에 부합하는 HTML 요소를 검색할 수 없는 경우 에러 대신 null을 반환한다.

     

    <!DOCTYPE html>
    <html>
      <head>
      ...
      </head>
      <body>
      <script>
        var element = document.querySelector('.good');
        
        // HTML 문서에 good 클래스를 갖는 요소가 없다면 null을 반환한다.
        console.log(element); // null
      </script>
      </body>
    </html>

    댓글

Designed by Tistory.