JavaScript/오류해결하기

JavaScript 오류 해결하기-3

justgodoit 2024. 8. 13. 14:30

문제

함수 작성 시 오류발생하여 오류 원인과 수정 후 해결에 대해 작성하겠습니다.

> 로그인 기능 구현 시 마다 아이디/비번/이메일/토큰 중 매번 두개를 체크해야된다고 가정한다.
> 각 체크를 담당하는 함수들을 미리 정의한다.

    const fnIdCheck = () => {
      console.log("아이디체크");
    }
    const fnPwdCheck = () => {
      console.log("비밀번호체크");
    }
    const fnEmailCheck = () => {
      console.log("이메일체크");
    }
    const fnTokenCheck = () => {
      console.log("토큰체크");
    }

> 로그인 처리하는 함수를 정의한다.
> 이때 체크해야 될 두개의 함수를 콜백함수로 전달받는다.
> 전달된 각 함수를 실행한다.

    const fnLogin = (fnCheck1, fnCheck2) => {
      fnCheck1();
      fnCheck2();
    }

 

  <!-- case1. 아이디 및 비번 체크해야 될 경우-->
  <button onclick="fnLogin(fnIdCheck, fnPwdCheck);">로그인1</button>
  <!-- case2. 아이디 및 비번 체크해야 될 경우-->
  <button onclick="fnLogin(fnEmailCheck, fnPwdCheck);">로그인2</button>
  <!-- case3. 아이디 및 토큰 체크해야 될 경우-->
  <button onclick="fnLogin(fnIdCheck, fnTokenCheck);">로그인3</button>

 

🚨 오류

▶Uncaught 

ReferenceError: fnCheck2 is not defined
    at fnLogin (07_function.html:318:7)
    at HTMLButtonElement.onclick (07_function.html:324:53)

 

👀 구글번역

▶잡히지 않음 
ReferenceError: fnCheck2가 정의되지 않았습니다.
    fnLogin에서(07_function.html:318:7)
    HTMLButtonElement.onclick(07_function.html:324:53)에서

 

❓ 원인

화살표 함수 내에 변수명을 잘못 입력했습니다.

 

    const fnLogin = (fnCheck1, fcCheck2) => {
      fnCheck1();
      fnCheck2();
    }

 

✅ 해결

화살표 함수 내에 변수명을 잘못 입력했습니다.

 

    const fnLogin = (fnCheck1, fnCheck2 ) => {
      fnCheck1();
      fnCheck2();
    }

 


오류발생 시 콘솔창 확인 후 오류를 찾아 수정하는 습관을 형성하고 있습니다. 보통 오류 발생 시 오타인 경우가 많기 때문에 이렇게 지속적으로 오류 발생을 기록하다보면 스스로 오타를 범하는 실수를 줄이기 위해 신경쓰게 되는 것 같습니다.