확인 if(response[0].title !== undefined)
중이지만 오류가 발생합니다.
잡히지 않은 TypeError : 정의되지 않은 'title'속성을 읽을 수 없습니다.
확인 if(response[0].title !== undefined)
중이지만 오류가 발생합니다.
잡히지 않은 TypeError : 정의되지 않은 'title'속성을 읽을 수 없습니다.
답변:
response[0]
이 정의되어 있지 않으면 정의되어 있는지 확인한 다음 해당 속성 제목을 확인하십시오.
if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
//Do something
}
undefined
JavaScript 키워드가 아니기 때문에 확인을 수행하는 좋은 방법 은 아닙니다 (모두가 생각하는 것처럼 보이지만). 원하는 경우이라는 변수를 만들면 undefined
이 검사가 올바르지 않습니다. 올바른 방법은 확인하는 것 (typeof myVar !== 'undefined')
입니다.
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]
자체가 정의되지 않았기 때문 입니다.
이러한 답변 중 일부에는 사용 방법에 대한 근본적인 오해가 있습니다 typeof
.
잘못된
if (typeof myVar === undefined) {
옳은
if (typeof myVar === 'undefined') {
그 이유는 typeof
문자열 을 반환하기 때문입니다 . 따라서 JavaScriptundefined
자체 의 기본 유형 중 하나 인 따옴표로 묶지 않고 "정의되지 않은"문자열을 반환했는지 확인해야합니다 . typeof
연산자는 유형의 값을 반환하지 않습니다 undefined
.
추가
잘못된 비교를 사용하면 코드가 기술적으로 작동 할 수 있지만 생각한 이유가 아닐 수도 있습니다. undefined
JavaScript 에는 기존 변수 가 없습니다 . 비교할 수있는 일종의 마술 키워드는 아닙니다. 실제로 변수를 호출 undefined
하여 원하는 값을 지정할 수 있습니다.
let undefined = 42;
다음은이를 사용하여 첫 번째 방법이 잘못되었음을 증명하는 방법의 예입니다.