ABOUT ME

작은 디테일에 집착하는 개발자

Today
-
Yesterday
-
Total
-
  • [JavaScript] null, undefined, NaN 완벽 정복
    IT Study/FE 2023. 10. 5. 14:57
    728x90

    null, undefined, NaN에 대해 완벽히 정복해 보겠습니다. (ㅋ_ㅋ)

     

    🌟 Point null과 undefined는 값인 동시에 데이터 유형입니다.

     

    1. undefined

    undefined는 초기화되지 않은 변수의 기본 값으로,

    변수를 선언하고 =(등호)로 값을 할당하지 않을 경우 이 변수는 undefined가 됩니다.

     

    또 undefined는 배열에서 생성되지 않은 인덱스로 접근하려 했을 때 뜨기도 하는데요,

    아직 없는 요소에 접근하려고 했기 때문에 undefined를 반환합니다.

    즉, undefined는 아무것도 없음을 나타내는 값이죠.

     

    또 undefined는 데이터 유형이기도 하는데요, 숫자와 문자열이 데이터 유형인 것처럼 undefined 또한 데이터 유형입니다.

    그러나 undefined를 직접 값으로 할당해서는 안됩니다. (= undefined 절대 금지)

    // 1. 변수 선언만 하는 경우
    let x;
    console.log(x); // undefined
    
    // 2. 함수에 명시적인 반환이 없을 경우
    function example() {
      
    }
    console.log(example()); // undefined
    
    // 3. 존재하지 않는 객체 속성에 접근한 경우
    let person = { name: "John" };
    console.log(person.age); // undefined (age 속성이 존재하지 않음)

     

    2. null

    null은 undefined와 유사히 데이터가 없다는 것을 의미합니다.

    undefined는 변수에 새로운 값을 할당하지 않는 경우의 "기본 값"이 될 수 있지만,

    null은 절대 기본 값이 될 수 없습니다.

     

    해당 값을 사용하려면 개발자가 명시적으로 null을 설정해줘야 합니다.

    이는 변수를 재설정하거나 정리하고 싶을 때 사용될 수 있습니다.

     

    나중에 값이 설정되었는지를 확인하기 위해 if문을 써서 조건을 확인할 경우 특히 유용합니다.

    // 1. 명시적으로 값이 없음을 나타낼 경우
    let y = null;
    console.log(y); // null
    
    // 2. 변수 초기화 후에도 값이 없는 상태로 재설정할 경우
    let z = "Hello";
    z = null;
    console.log(z); // null
    
    // 3. 함수에서 명시적으로 null을 반환할 경우
    function example2() {
      return null; // 값이 없음을 나타냄
    }
    console.log(example2()); // null

     

    3. NaN

    undefined와 null은 그 자체로 유형이지만, NaN는 자체 유형이 아닌 숫자 유형이라고 할 수 있습니다.

    NaN은 Not a Number, 즉 숫자가 아님을 나타내는 특수한 값으로

    수학적인 연산에서 부적절히 연산이 수행되었을 때 발생할 수 있습니다.

    let result = "hello" * 2;
    console.log(result); // NaN

     

    최종 정리

    undefined는 자바스크립트 엔진에 의해 자동으로 할당되는 값,

    null은 개발자가 명시적으로 "값이 없음"을 표현(할당)하는 값입니다.

    NaN은 비숫자 값으로 부적절한 수학 연산에서 발생하는 것으로 정리하면 좋겠군요... (그럼 20000...🍟)

Designed by Tistory.