TypeError: Cannot read property '...' of null/undefined 원인과 해결 방안

익스랩 최고 관리자

·

2023. 7. 24. 20:17

반응형

목차

1. 오류설명

2. 발생원인

3. 해결책

4. 결론

 

JavaScript 오류 해결하기: "TypeError: Cannot read property '...' of null/undefined"

 

오류 설명

이 오류는 JavaScript에서 발생하는 일반적인 에러 중 하나로, null 또는 undefined인 객체의 속성에 접근하려고 할 때 발생합니다. 즉, 값이 null이거나 정의되지 않은(undefined) 객체의 속성에 접근하려고 하면 해당 오류가 발생하는 것입니다.

 

 

발생 원인

 

이 에러가 발생하는 원인은 객체가 null이거나 undefined인 상태에서 해당 객체의 속성을 읽으려고 할 때 발생합니다. 예를 들어, 아래와 같은 상황에서 오류가 발생합니다.

 

1. null인 객체의 속성에 접근하는 경우:

const obj = null;
console.log(obj.name); // TypeError: Cannot read property 'name' of null

 

2. 정의되지 않은(undefined) 객체의 속성에 접근하는 경우:

const obj = {};
console.log(obj.age); // TypeError: Cannot read property 'age' of undefined

 

3. 함수에서 값을 반환하지 않고 객체를 반환하는 경우:

function getUser() {
  // 반환문이 없어서 함수가 undefined를 반환함
}

const user = getUser();
console.log(user.name); // TypeError: Cannot read property 'name' of undefined

 

 

해결책

 

이 오류를 해결하려면 해당 객체가 null 또는 undefined인지 먼저 확인해야 합니다. 객체가 null 또는 undefined인 경우에는 해당 객체의 속성에 접근하지 않도록 조건문을 사용하여 처리해야 합니다.

 

올바른 예시:

// null인 경우에 대한 처리
const obj = null;
if (obj !== null) {
  console.log(obj.name); // obj가 null이 아닌 경우에만 속성에 접근
}

// undefined인 경우에 대한 처리
const obj = {};
if (obj.age !== undefined) {
  console.log(obj.age); // obj.age가 정의되어 있는 경우에만 속성에 접근
}

// 함수에서 반환값이 null 또는 undefined인 경우에 대한 처리
function getUser() {
  // 반환문이 없어서 함수가 undefined를 반환함
}

const user = getUser();
if (user !== undefined) {
  console.log(user.name); // user가 정의되어 있는 경우에만 속성에 접근

 

 

결론

"TypeError: Cannot read property '...' of null/undefined" 오류는 null 또는 undefined인 객체의 속성에 접근할 때 발생하는 오류입니다. 이 오류를 해결하기 위해 null 또는 undefined인 객체에 접근할 때 조건문을 사용하여 오류를 처리하는 것이 중요합니다. 프로그래밍 시에 유효성을 검사하고 예외 상황을 처리하여 안정성을 확보해야 합니다.

반응형

💖 포스터에게 힘 보내기 💖

카카오뱅크
3333-25-9477515
치킨 좋아하는 포스터