2013-04-20 2 views
1

javascript에서 오류를 발생시키지 않고 변수가 존재하는지 ({}에 할당하지 않은 경우) 확인할 수 있어야합니다.if (a) {} throw uncaughtReferenceError

a = a || {}  

또는 어쩌면이

다음과 같습니다이 코드

if (a) {}  

이 오류를 던지고없이 uncaughtReferenceError

내가 정말하고 싶은 것은이 같은 것입니다을 던졌습니다을하려고 할 때

if (a) { a = {} }  
+0

'a = a || {}'? – Kenneth

+0

@Kenneth 여전히 * get * - 첫 번째 오류입니다. 'a'는 아직 정의되지 않았 으면'a || {}'이 평가됩니다. –

+0

오, 나는 그것이 적어도 선언했다고 당신에게 알렸다. 이 경우 아래 답변은 완벽하게 작동합니다. – Kenneth

답변

2
if (typeof a === 'undefined'){ 
    // variable is not available and you can write a = {} 
} 

이지만 a = a || {}은 곧

2

이 될 경우 a이 전역 인 경우 글로벌 개체을 사용하여 오류를 방지 할 수 있습니다. 브라우저에서 해당 객체가 window입니다 :

window.a = window.a || {}; 

또는 Ozerich 제안으로, 당신은 typeof을 사용할 수 있습니다, 참조 오류가 발생하지 것이다 :

if (typeof a === 'undefined') { 
    a = {}; 
} 
0
a = a || {} 

단순히 작동하지 않습니다를, a이 정의되어 있지 않기 때문입니다. 그러나 typeof을 사용하여 존재 여부를 확인할 수 있습니다.

a = (typeof(a) === 'undefined' ? {} : a); 
관련 문제