2013-06-23 3 views
0
typeof(nonexistingobj) 

반환 '정의되지 않은'하지만정의되지 않은 자바 스크립트에서 참조 오류를 감지하는 방법은 무엇입니까?

typeof(nonexistingobj.nonexistentproperty) 

생성하지 않습니다 내가 기대 한대로 '정의되지 않은',하지만 뭔가가 Reference Error라는 -이 감지 어떻게?

API의 응답에서 하위 속성 검색을 수행하려고합니다. (특히 API는 얻을 수있는 다른 API 페이지가있을 때 data.paging.next이라는 하위 객체를 반환하지만 마지막 페이지를 방금 반환 한 경우 '다음'하위 객체는 없음)을 반환합니다.

+1

존재하지 않는 객체에 속성을 참조하려고 ReferenceError가 얻을 :

if (typeof obj !== "undefined") { typeof obj.nonexistentproperty; } 

+1

'typeof'는 함수가 아닌 연산자입니다. 'typeof obj.nonexistentproperty'와 같이 사용합니다. – basilikum

+1

[try-catch 문] (http://www.w3schools.com/js/js_errors.asp)에서 호출을 래핑하여 ReferenceError를 감지 할 수 있습니다. –

답변

3

undefined 속성에 액세스하려고 시도하지 마십시오. 액세스하려는 변수가 먼저 정의되었는지 테스트하십시오.

try { 
    console.log(typeof nonexistingobj.nonexistentproperty); 
} catch (error) { 
    console.log('Message error: ' + error.message); 
} 
+0

아, 그럴 수 있습니다. 감사. – metalaureate

0

는 당신이 시도 사용할 수있는 오류/캐치 캐치합니다. 따라서 귀하의 경우,`obj`는 존재하지 않습니다 (그래서 그것은 정의되지 않습니다). ``undefined '=== typeof (obj)`