프로그래밍 언어/HTML,CSS,JS

JavaScript에서 정의되지 않은 변수 또는 null 변수를 확인하는 방법

Rateye 2021. 7. 6. 10:17
728x90
반응형

 

질문 : JavaScript에서 정의되지 않은 변수 또는 null 변수를 확인하는 방법은 무엇입니까?

우리는 JavaScript 코드에서 다음 코드 패턴을 자주 사용합니다.

if (typeof(some_variable) != 'undefined' && some_variable != null)
{
    // Do something with some_variable
}

동일한 효과를 갖는 덜 장황한 검사 방법이 있습니까?

일부 포럼과 문헌에 따르면 단순히 다음과 같은 효과가 있어야한다고 말합니다.

if (some_variable)
    {
        // Do something with some_variable
    }

불행히도 Firebug some_variable 이 정의되지 않은 경우 런타임에서 오류와 같은 문을 평가하지만 첫 번째 문은 괜찮습니다. 이것은 Firebug의 (원치 않는) 동작 일 뿐입니 까, 아니면이 두 가지 방법 사이에 실제로 약간의 차이가 있습니까?

답변

케이스를 구별해야합니다.

if(typeof someUndeclaredVar == whatever) // works
if(someUndeclaredVar) // throws error

선언되었지만 초기화 undefined .

let foo;
if (foo) //evaluates to false because foo === undefined

 

someExistingObj.someUndefProperty 와 같은 정의되지 않은 속성 . 정의되지 않은 속성은 오류를 생성하지 않고 단순히 undefined 를 반환하며, 이는 부울로 변환 될 때 false 평가됩니다. 0false 에 대해 신경 쓰지 if(obj.undefProp) 은 괜찮습니다. 이 사실을 바탕으로 한 일반적인 관용어가 있습니다.

value = obj.prop || defaultValue

즉, " obj prop 속성이 value 에 할당하고, 그렇지 않으면 기본값 defautValue 할당합니다"를 의미합니다. 어떤 사람들은이 동작이 혼란스러워서 찾기 어려운 오류로 이어진다 고 주장하고 in 연산자를 사용하도록 권장합니다.

value = ('prop' in obj) ? obj.prop : defaultValue

 

 

 

 

출처 : https://stackoverflow.com/questions/2559318/how-to-check-for-an-undefined-or-null-variable-in-javascript

 

728x90
반응형