본문 바로가기

항해99 부트캠프/TIL

[TIL] Uncaught TypeError: is not a function 오류 해결하기

📍오늘 주특기 심화주 마지막 날

 

📗 오늘의 챌린지

* Uncaught TypeError: is not a function 오류 해결하기

 

위 오류는 함수를 찾을 수 없는 경우 발생한다고 합니다. 함수명이 태그 id, name 등과 동일하거나 함수 내에 오류가 발생하는 코드가 있는 경우 발생하게 되는데요.

 

우선 에러 메시지를 살펴봅시다.

 

 

addBoard라는 함수명을 찾을 수 없다는 메시지이니, id 또는 name에서 이와 같은 이름을 쓰는 것이 있는지를 확인해봐야 합니다.

→ 동일한 이름을 쓰는 id나 name은 확인할 수 없었습니다.

 

두 번째로 해야하는 일은 함수 내 어디서 오류가 뜨는지를 console.log를 사용하여 확인해 봐야합니다. 오류가 발생하는 파일은 index.js와 index.spec.js 중 테스트 코드를 담고 있는 spec.js 파일이었습니다. 그러면 이 파일에서 콘솔 로그를 사용해 어디서 오류가 발생하는 지를 확인해보겠습니다.

 

 

콘솔 로그로 확인해봤더니 위 이미지 한 군데 외에는 전부 잘 찍혀서 나오는 걸 볼 수 있었습니다. 이후 mySite.addBoard 각각 mySite와 addBoard가 정의된 곳을 찾아보니, 문제는 테스트 코드에 제가 잘못 쓴 코드가 있는 것을 발견했습니다. 함수 정의 오류였지만, 사실 진짜 오류를 만든 곳은 따로 있었네요 😭 그래도 오류 한 가지를 통해 해당 부분 코드를 더 꼼꼼히 살펴보고 생각해보게 되어서 더 많이 공부할 수 있었다고 위안을 삼아봅니다.

 

일반적인 경우에서는 Uncaught TypeError: is not a function 오류의 경우 1) 같은 이름을 쓰는 코드가 없는지 2) 함수를 정의해주었는지를 확인하시면 대개 해결할 수 있을 것이라 생각됩니다.

 

그럼 오늘도 모두 즐코!

 

 

참조:

https://domdom.tistory.com/entry/오류해결-Uncaught-TypeError-is-not-a-function