Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 7월.
전역 undefined 속성은 undefined 원시 값을 나타내며, JavaScript의 원시 자료형 중 하나입니다.
undefined의 원시 값입니다.
| 쓰기 가능 | 불가능 |
| 열거 가능 | 불가능 |
| 설정 가능 | 불가능 |
undefined는 전역 객체의 속성입니다. 즉, 전역 범위에서의 변수입니다.
최신 브라우저에서 undefined는 설정 불가, 쓰기 불가한 속성입니다. 그렇지 않더라도 덮어쓰는건 피하는게 좋습니다.
값을 할당하지 않은 변수는 undefined 자료형입니다. 메서드나 선언도 평가할 변수가 값을 할당받지 않은 경우에 undefined를 반환합니다. 함수는 값을 명시적으로 반환하지 않으면 undefined를 반환합니다.
참고 : 전역 범위 이외의 모든 범위에서 식별자 (변수 이름)로 undefined를 사용할 수 있지만(undefined는 예약어가 아니기 때문에), 그렇게 하는 것은 매우 나쁜 생각입니다. 코드를 유지보수하고 디버깅하기 어렵게 만듭니다.
undefined와 엄격한 일치, 불일치 연산자를 사용해 변수에 값이 있는지 확인할 수 있습니다. 다음 코드에서 변수 x는 초기화되지 않았으며, if문은 참으로 평가됩니다.
참고 : : x == undefined는 x가 null일 때도 참이기 때문에, 엄격한 동등 연산자(표준 동등 연산자와 반대로)를 사용해야 합니다. 반면에, 엄격한 동등 연산자는 그렇지 않습니다. 이것은 null이 undefined하고 동일하지 않기 때문입니다.
자세한 내용은 Equality comparison and sameness 문서를 확인하세요.
위의 예제 대신 typeof를 사용할 수도 있습니다.
typeof를 사용하는 한 가지 이유는 변수가 선언되지 않은 경우 오류를 발생시키지 않기 때문입니다.
그러나 다른 방법도 있습니다. JavaScript는 정적 범위를 가지는 언어이므로, 변수의 선언 여부는 현재 컨텍스트의 코드를 읽어 알 수 있습니다.
전역 범위는 전역 객체에 바인딩되므로, 전역 컨텍스트에서 변수의 존재 유무는 in 연산자를 전역 객체 대상으로 실행해 알 수 있습니다. 예를들어,
void 연산자는 세번째 대안입니다.
| ECMAScript® 2027 Language Specification # sec-undefined |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025년 10월 9일 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.