다음을 통해 공유


정의되지 않은 값

업데이트: 2007년 11월

JScript에서는 변수에 값을 할당하지 않고 변수를 선언할 수 있습니다. 형식 주석을 사용하여 형식이 지정된 변수인 경우에는 그 형식의 기본값입니다. 예를 들어, 숫자 형식의 기본값은 0이고 String 데이터 형식의 기본값은 빈 문자열입니다. 그러나, 지정된 데이터 형식이 없는 변수의 초기값은 undefined이고 데이터 형식은 undefined입니다. 마찬가지로 expando 개체 속성이나 존재하지 않는 배열 요소에 액세스하는 코드는 undefined 값을 반환합니다.

정의되지 않은 값 사용

변수 또는 개체 속성이 존재하는지 확인하려면 키워드 undefined에 비교하거나(선언된 변수 또는 속성인 경우에만 해당), 형식이 "undefined"인지 확인합니다(선언되지 않은 변수 또는 속성인 경우까지도 해당). 다음 코드 예제에서는 프로그래머가 변수 x가 선언되었는지 테스트하고 있다고 가정합니다.

// One method to test if an identifier (x) is undefined.
// This will always work, even if x has not been declared.
if (typeof(x) == "undefined"){
   // Do something.
}
// Another method to test if an identifier (x) is undefined.
// This gives a compile-time error if x is not declared.
if (x == undefined){
   // Do something.
}

변수나 개체 속성이 정의되어 있지 않은지 확인하는 또 하나의 방법은 값을 null에 비교하는 것입니다. null 값을 포함하는 변수는 "값" 또는 "개체"를 포함하지 않습니다. 즉, 유효한 숫자, 문자열, 부울, 배열 또는 개체를 갖지 않습니다. 변수에 null 값을 할당하면 변수를 삭제하지 않고 변수의 내용을 지울 수 있습니다. undefined 값과 null 값은 같음 연산자(==)를 사용할 때 동일한 값으로 간주됩니다.

참고:

JScript에서 null은 같음 연산자를 사용할 경우 0과 동일한 값으로 간주되지 않습니다. 이것은 C나 C++과 같은 다른 언어와는 다른 점입니다.

다음 예제에서는 obj 개체가 prop 속성을 가지는지 여부를 테스트합니다.

// A third method to test if an identifier (obj.prop) is undefined.
if (obj.prop == null){
   // Do something.
}

이 비교는 true입니다.

  • obj.prop 속성에 null 값이 포함된 경우

  • obj.prop 속성이 존재하지 않는 경우

다른 방법으로도 개체 속성이 존재하는지 확인할 수 있습니다. 지정된 속성이 제공된 개체에 있는 경우 in 연산자는 true를 반환합니다. 예를 들어, prop 속성이 obj 개체에 있는 경우 다음 코드는 true를 반환합니다.

if ("prop" in someObject)
// someObject has the property 'prop'

개체에서 속성을 제거하려면 delete 연산자를 사용합니다.

참고 항목

참조

null 리터럴

undefined 속성

in 연산자

delete 연산자

기타 리소스

JScript 변수 및 상수

JScript의 데이터

JScript 데이터 형식

데이터 형식(JScript)