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

자바스크립트에서 null, undefined 또는 빈 값을 확인하는 표준 함수가 있나요?

아니요, 자바스크립트에는 null, undefined 또는 빈 값을 한 번에 판별해 주는 표준 내장 함수는 없습니다. 대신 자바스크립트에는 truthyfalsy라는 고유한 개념이 존재합니다.

조건문(if문 등)에서 true로 강제 변환(coercion)되는 값을 truthy 값이라고 부르고, false로 평가되는 값을 falsy 값이라고 합니다.

falsy 값 목록

ECMAScript(ES) 명세에 따르면, 다음 값들은 조건문 컨텍스트에서 항상 false로 평가됩니다.

  • null
  • undefined
  • NaN
  • 빈 문자열 ("")
  • 0 (숫자 영)
  • false

즉, 아래의 if문들은 어떤 것도 실행되지 않습니다.

if (null)
if (undefined)
if (NaN)
if ("")
if (0)
if (false)

null과 undefined를 직접 확인하는 방법

표준 함수는 없지만, 느슨한 동등 연산자(==)를 활용하면 null과 undefined를 동시에 검사할 수 있습니다. 자바스크립트에서 null == undefinedtrue를 반환하기 때문입니다.

function isEmpty(value) {
  return value == null || value === "";
}

isEmpty(null);      // true
isEmpty(undefined); // true
isEmpty("");        // true
isEmpty(0);         // false
isEmpty("hello");   // false

또한 변수 자체가 선언되었는지 여부까지 안전하게 확인하려면 typeof 연산자를 사용하는 것이 좋습니다. 선언되지 않은 변수에 접근해도 에러가 발생하지 않기 때문입니다.

if (typeof myVar === "undefined") {
  console.log("myVar는 정의되지 않았습니다.");
}

정리하자면, 전용 표준 함수는 없지만 falsy 값의 성질과 == null 비교, typeof 검사를 조합하면 null, undefined, 빈 문자열을 손쉽고 안전하게 처리할 수 있습니다.