[javascript] JavaScript에서 정의되지 않은 변수를 확인하는 방법

변수가 정의되어 있는지 확인하고 싶었습니다. 예를 들어 다음은 정의되지 않은 오류를 발생시킵니다.

alert( x );

이 오류를 어떻게 잡을 수 있습니까?



답변

JavaScript에서 null객체입니다. 존재하지 않는 것에는 또 다른 가치가 있습니다 undefined. DOM은 null문서에서 일부 구조를 찾지 못하는 거의 모든 경우에 대해 반환 하지만 JavaScript 자체에서 undefined사용되는 값입니다.

둘째, 아닙니다. 직접적으로 동등한 것은 없습니다. 에 대해 구체적으로 확인하려면 다음을 null수행하십시오.

if (yourvar === null) // Does not execute if yourvar is `undefined`

변수가 존재하는지 확인하려면 try/ 로만 수행 할 수 있습니다 . 선언되지 않은 변수와 값이 같은 것으로 선언 된 변수를 처리하기 catch때문 typeof입니다 undefined.

하지만, 변수가 선언 된 경우 확인 되지 않습니다 undefined:

if (yourvar !== undefined) // Any scope

이전 에는 변수처럼 typeof재 할당 할 수 있었으므로 연산자 를 사용하여 정의되지 않은 안전을 검사해야했습니다 undefined. 옛날 방식은 다음과 같습니다.

if (typeof yourvar !== 'undefined') // Any scope

undefined재 할당 할 수 있는 문제는 2009 년에 릴리스 된 ECMAScript 5에서 수정되었습니다. 이제 한동안 읽기 전용 이므로 사용하지 않고도 안전하게 사용 ===하고 !==테스트 할 수 있습니다 .undefinedtypeofundefined

멤버가 독립적으로 존재하지만 그 가치가 무엇인지 신경 쓰지 않으려면 다음을 수행하십시오.

if ('membername' in object) // With inheritance
if (object.hasOwnProperty('membername')) // Without inheritance

변수가 진실 인지 알고 싶다면 :

if (yourvar)

출처


답변

변수가 실제로 있는지 테스트하는 유일한 방법 undefined은 다음을 수행하는 것입니다. undefined는 JavaScript의 객체입니다.

if (typeof someVar === 'undefined') {
  // Your variable is undefined
}

이 스레드의 다른 솔루션 중 일부는 변수가 정의되어 있어도 (예 : NULL 또는 0의 값으로) 정의되지 않았다고 생각하게합니다.


답변

기술적으로 올바른 해결책은 다음과 같습니다.

typeof x === "undefined"

때로는 게으르고 사용할 수 있습니다

x == null

그러나 정의되지 않은 변수 x와 null을 포함하는 변수 x가 모두 true를 반환하도록 허용합니다.


답변

더 쉽고 짧은 축약 형은 다음과 같습니다.

if (!x) {
   //Undefined
}

또는

if (typeof x !== "undefined") {
    //Do something since x is defined.
}


답변

나는 종종 했어요 :

function doSomething(variable)
{
    var undef;

    if(variable === undef)
    {
         alert('Hey moron, define this bad boy.');
    }
}


답변

삼항 조건 연산자를 사용할 수도 있습니다.

var a = "hallo world";
var a = !a ? document.write("i dont know 'a'") : document.write("a = " + a);

//var a = "hallo world";
var a = !a ? document.write("i dont know 'a'") : document.write("a = " + a);


답변

나는 종종 가장 간단한 방법을 사용합니다.

var variable;
if (variable === undefined){
    console.log('Variable is undefined');
} else {
    console.log('Variable is defined');
}

편집하다:

변수를 초기화하지 않으면 “Uncaught ReferenceError : variable is not defined …”예외가 발생합니다.