변수가 존재하는지 확인하는 방법
이것은 변수가 존재하고 초기화되었는지 테스트하기위한 방탄 솔루션입니다.
var setOrNot = typeof variable !== typeof undefined;
특정 변수가 초기화되지 않은 경우 기본값을 설정하기 위해 삼항 연산자 와 함께 가장 일반적으로 사용됩니다 .
var dark = typeof darkColor !== typeof undefined ? darkColor : "black";
캡슐화 문제
불행히도, 단순히 체크를 함수로 캡슐화 할 수는 없습니다.
다음과 같은 일을 생각할 수 있습니다.
function isset(variable) {
return typeof variable !== typeof undefined;
}
그러나 예를 들어 호출하면 참조 오류가 발생합니다. isset(foo)
변수 foo
가 존재하지 않는 변수를 함수에 전달할 수 없으므로 변수 가 정의되지 않았습니다.
잡히지 않은 ReferenceError : foo가 정의되지 않았습니다
함수 매개 변수가 정의되지 않았는지 테스트
우리 반면 isset
함수는 변수 (이유 hereabove 설명을위한)의 존재 여부 테스트에 사용할 수 없습니다, 그것은 함수의 매개 변수가 정의되지 여부를 테스트 우리를 허용하지 :
var a = '5';
var test = function(x, y) {
console.log(isset(x));
console.log(isset(y));
};
test(a);
// OUTPUT :
// ------------
// TRUE
// FALSE
에 대한 값이 비록 y
기능에 전달되지 않습니다 test
, 우리 isset
때문에 기능은 이러한 맥락에서 완벽하게 작동 y
기능에 알려진 test
int로서 undefined
값.
foo
중, 선언typeof foo === 'undefined'
또는typeof foo === typeof undefined