IT story

JavaScript에서 정의되지 않은 것이 있는지 테스트

hot-time 2020. 4. 22. 08:14
반응형

JavaScript에서 정의되지 않은 것이 있는지 테스트


확인 if(response[0].title !== undefined)중이지만 오류가 발생합니다.

잡히지 않은 TypeError : 정의되지 않은 'title'속성을 읽을 수 없습니다.


response[0] 이 정의되어 있지 않은 경우 정의되어 있는지 확인한 후 속성 제목을 확인하십시오.

if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
    //Do something
}

response[0]정의되어 있지 않은지 확인하십시오 .

if(response[0] !== undefined) { ... }

여전히 제목을 명시 적으로 확인해야하는 경우 초기 확인 후 확인하십시오.

if(response[0] !== undefined && response[0].title !== undefined){ ... }

위의 다른 모든 코드 예제에서 문제가있었습니다. Chrome에서 이것은 나를 위해 일한 조건이었습니다.

typeof possiblyUndefinedVariable !== "undefined"

다른 브라우저에서 테스트하고 상황이 어떻게 진행되는지 확인해야합니다.


실제로 코드가 작동하지 않도록 Try / Catch 블록으로 둘러싸 야합니다. 이처럼 :

try{
    if(typeof response[0].title !== 'undefined') {
        doSomething();
    }
  }catch(e){
    console.log('responde[0].title is undefined'); 
  }

유형:

var foo;
if (typeof foo == "undefined"){
  //do stuff
}

response[0]자체가 정의되지 않았기 때문 입니다.


확인하십시오 condition == null; 문제를 해결합니다


response[0]실제로 존재 하는지 확인하면 오류가 존재하지 않는 것으로 보입니다.


먼저 response[0]정의되지 않았 는지 확인하고 그렇지 않은 경우에만 나머지를 확인하십시오. 즉, 귀하의 경우 response[0]정의되지 않았습니다.


나는 7 개월 늦게 여기에 갔다는 것을 알고 있지만이 질문을 발견했으며 흥미로워 보입니다. 브라우저 콘솔에서 시도했습니다.

try{x,true}catch(e){false}

변수 x가 정의되지 않으면 오류가 포착되고 그렇지 않으면 거짓이되고, 그렇지 않으면 참을 리턴합니다. 따라서 eval 함수를 사용하여 값을 변수로 설정할 수 있습니다

var isxdefined = eval('try{x,true}catch(e){false}')

참고 URL : https://stackoverflow.com/questions/7041123/test-if-something-is-not-undefined-in-javascript

반응형