JavaScript 개발을 하다 보면 변수에 값이 제대로 할당되었는지, 즉 null이나 undefined 상태인지 확인해야 하는 경우가 자주 발생합니다. 이 글에서는 조건문과 typeof 연산자를 활용해 변수의 상태를 검사하는 두 가지 기본적인 방법을 소개합니다.
1. 조건문으로 null 또는 undefined 확인하기
변수를 if 조건문에 그대로 넣으면 JavaScript의 '참 같은 값(truthy)'과 '거짓 같은 값(falsy)' 규칙에 따라 평가됩니다. 결과가 false라면 해당 변수는 null 또는 undefined 상태임을 의미합니다.
다음 예제에서 변수 age에는 숫자 10이 할당되어 있으므로 결과는 True가 출력됩니다.
<html>
<body>
<script>
var age = 10;
if(age){
document.write("True");
} else {
document.write("False");
}
</script>
</body>
</html>주의할 점
이 방식은 간편하지만, 숫자 0, 빈 문자열 "", false 역시 falsy 값으로 평가되기 때문에 의도치 않게 "False"가 출력될 수 있습니다. 값의 존재 여부만 정확히 판별하려면 다음 방법을 사용하는 것이 좋습니다.
2. typeof 연산자로 변수 존재 여부 확인하기
typeof 연산자를 사용하면 변수가 선언되어 있고 값이 할당되어 있는지 더 정확하게 확인할 수 있습니다. 아래 예제처럼 typeof age !== 'undefined' 조건을 사용하면 변수가 정의되지 않은 경우에도 에러 없이 안전하게 검사할 수 있습니다.
<html>
<body>
<script>
var age = 10;
if(typeof age !== 'undefined') {
document.write("True");
} else {
document.write("False");
}
</script>
</body>
</html>정리
- 조건문(if): 간단한 진위 확인에 유용하지만, 0이나 빈 문자열도 false로 판정된다는 점에 유의해야 합니다.
- typeof 연산자: 변수가 정의되지 않은 경우에도 ReferenceError 없이 안전하게 존재 여부를 확인할 수 있는 가장 확실한 방법입니다.
상황에 맞게 두 방법을 적절히 활용하면 null, undefined 관련 오류를 효과적으로 예방할 수 있습니다.