문제상황:
에러가 발생한 코드와 이에 대한 설명:
function countCharacters(obj) {
return obj.name.length;
}
const myObj = { age: 30 };
console.log(countCharacters(myObj));
위 코드는 객체의 name 속성의 문자 길이를 반환하는 함수 countCharacters를 포함하고 있습니다. 그러나, 이 코드를 실행하면 다음과 같은 에러가 발생합니다.
에러로그 내용:
TypeError: Cannot read property 'length' of undefined
해결방법:
에러가 수정된 코드+ 수정된 부분에 대한 주석:
function countCharacters(obj) {
if (obj.name) {
return obj.name.length; // 수정된 부분
}
return 0;
}
const myObj = { age: 30 };
console.log(countCharacters(myObj));
위 코드에서 수정된 부분은 name 속성이 있는지 확인하는 조건문을 추가한 것입니다.
원인분석:
이 에러는 객체의 속성이 정의되지 않았을 때 해당 속성의 속성을 읽으려고 시도할 때 발생합니다. 기존 코드에서는 name 속성이 없는 객체 myObj를 함수 countCharacters에 전달했기 때문에 에러가 발생했습니다.
참고링크:
728x90