자바스크립트에서 특정 변수가 존재하는지 확인하려면 undefined와 null을 함께 비교하는 것이 가장 안전한 방법입니다. 아래 예제에서는 myVar라는 변수의 존재 여부를 확인하고 있습니다.
변수 존재 여부 확인 예제
<html>
<body>
<script>
var myVar = 20;
if(myVar !== undefined && myVar !== null) {
document.write("Variable exists");
}
</script>
</body>
</html>
코드 설명
위 코드에서는 !==(엄격한 불일치 연산자)를 사용하여 두 가지 조건을 동시에 검사합니다.
myVar !== undefined: 변수가 선언되고 값이 할당되었는지 확인합니다.myVar !== null: 변수에 의도적으로null이 할당된 경우를 제외합니다.
두 조건이 모두 참이라면 해당 변수는 실제로 유효한 값을 가지고 있는 것이므로, "Variable exists"라는 문구가 화면에 출력됩니다.
typeof 연산자를 활용한 대안 방법
선언되지 않은 변수에 접근할 때 발생할 수 있는 ReferenceError를 피하고 싶다면, typeof 연산자를 사용하는 것도 좋은 방법입니다.
if (typeof myVar !== 'undefined' && myVar !== null) {
console.log("변수가 존재합니다.");
}
typeof는 선언되지 않은 변수에 대해서도 에러 없이 'undefined' 문자열을 반환하기 때문에, 더 안전하게 변수의 존재 여부를 판단할 수 있습니다.
주의 사항
==대신 반드시===또는!==같은 엄격한 비교 연산자를 사용해야 타입 변환으로 인한 예기치 않은 결과를 방지할 수 있습니다.undefined와null은 느슨한 비교(==) 시 서로 같다고 판단되므로, 두 경우를 구분해야 한다면 엄격한 비교가 필수입니다.