JS] typeof를 이용해서 선언되지 않은 변수 확인
typeof 연산자는 피연산자의 평가 전 자료형을 나타내는 문자열을 반환합니다.
값이 없는 변수와 선언되지 않은 변수에 대한 처리를 어떻게 하시나요?
일반적으로 값이 없는 변수는 undefined를 가지고 있습니다.
var a;
console.log(a); // undefined
// 처리 방법
// a의 값이 있을 때만 처리
if(a){
}
자 그럼, 선언되지 않은 변수를 사용하면 어떻게 될까요?
console.log(b); // ReferenceError: b is not defined
// ReferenceError: b is not defined
if(b) {
console.log('b');
}
선언되지 않는 변수와 값이 없는 변수는 다른 개념이며 오류가 발생하면 이후 실행이 안됩니다.
그럼, 선언되지 않은 변수를 확인 하는 방법이 무엇일까요?
바로 typeof
를 이용하면 됩니다.
// 선언되었으나 값이 없는 변수
typeof a; // 'undefined'
// 선언하지 않은 변수
typeof b; // 'undefined'
// 조건으로 사용시
if(typeof b === 'undefined') {
console.log('b 는 값이 없거나, 선언되지 않았습니다.');
}
어디에 활용 할까요?
특정 브라우저에서 지원하지 기능을 구현할때 사용하면 됩니다.
// atob 가 없을 경우 구현 처리
// 선언자(var, const, let)를 사용하지 않아야 전역으로 사용 가능하다.
if(typeof atob === "undefined") {
atob = function () { /* ... */ };
}