Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 null 값 확인하는 방법 완벽 가이드

JavaScript에서 변수의 값이 null인지 확인하려면 변수를 null과 직접 비교하면 됩니다. 이때 가장 안전하고 권장되는 방법은 엄격한 동등 연산자(strict equality operator, ===)를 사용하는 것입니다.

왜 === 연산자를 사용해야 할까요?

JavaScript에는 두 가지 동등 연산자가 있습니다.

  • == (느슨한 동등 연산자): 비교 전에 자동으로 타입 변환(type coercion)을 수행합니다. 예를 들어 null == undefinedtrue를 반환하기 때문에 의도치 않은 결과가 나올 수 있습니다.
  • === (엄격한 동등 연산자): 값과 데이터 타입을 모두 비교합니다. 따라서 null === undefinedfalse를 반환하며, 정확하게 null만 걸러낼 수 있습니다.

따라서 null 여부를 확인할 때는 항상 === 또는 !==를 사용하는 것이 좋습니다.

예제 코드

다음 코드를 실행하면 변수의 값이 null인지 아닌지 확인할 수 있습니다.

<html>
   <head>
      <title>JavaScript Strict Equality Operator</title>
   </head>
   <body>
      <script>
         var a = 10;
         if(a === null) {
            document.write("Value is null");
         } else {
            document.write("Value is not null");
         }
      </script>
   </body>
</html>

출력 결과

Value is not null

위 예제에서 변수 a의 값은 10이므로 null이 아니기 때문에 "Value is not null"이 출력됩니다.

참고: typeof 연산자의 함정

많은 개발자가 혼동하는 부분 중 하나는 typeof null"object"를 반환한다는 점입니다. 이것은 JavaScript 초기 설계 시절부터 남아 있는 유명한 버그(하위 호환성을 위해 유지됨)입니다. 따라서 null 검사에는 typeof가 아닌 반드시 === 비교를 사용해야 합니다.

console.log(typeof null);        // "object" (주의!)
console.log(null === null);      // true
console.log(typeof a === "object" && a === null); // 정확한 null 검사

null과 undefined의 차이

  • null: 개발자가 의도적으로 '값이 없음'을 할당한 상태입니다.
  • undefined: 변수가 선언되었지만 아직 값이 할당되지 않은 상태입니다.

두 값을 모두 확인해야 하는 경우라면 a == null(느슨한 비교)을 사용하면 nullundefined를 동시에 걸러낼 수 있습니다.