JavaScript - 변수가 정의되었는지 확인

자바스크립트에서 어떤 변수가 정의되었는지 확인하는 방법을 소개합니다.

1. 정의되지 않은 변수 사용시 발생하는 문제

아래와 같이 정의되지 않은 변수를 사용하면 var is not defined와 같은 메시지로 ReferenceError가 발생합니다. 사용하기 전에 타입 체크를 통해서 미정의된 변수인지 확인할 수 있습니다.

let var2 = var1;

Output:

let var2 = var1;
           ^

ReferenceError: var1 is not defined
    at Object.<anonymous> (/home/js/js_project/examples/node_f7951c597bee4.tmp:1:12)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)

2. typeof로 변수가 정의되었는지 확인

typeof는 변수의 타입을 리턴하며, 변수가 정의되지 않았을 때 undefined를 리턴합니다.

console.log(typeof var1);   // undefined
console.log(typeof "abc");  // string
console.log(typeof 123);    // number

이것을 이용하여 아래와 같이 변수가 정의되었는지 확인할 수 있습니다.

let var1 = 'ABC';

if (typeof var1 === 'undefined') {
  console.log("var1 is undefined");
} else {
  console.log("var1 is defined");
}

if (typeof var2 === 'undefined') {
  console.log("var2 is undefined");
} else {
  console.log("var2 is defined");
}

Output:

var1 is defined
var2 is undefined

3. try-catch로 변수가 정의되었는지 확인

try-catch에서 어떤 변수에 접근 시, ReferenceError 발생하면 정의되지 않은 변수입니다.

try {
  let aa = var1;
  console.log('var1 is defined')
} catch(e) {
  console.log('var1 is not defined')
}

Output:

var1 is not defined
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha