Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 함수가 정의되어 있는지 확인하는 방법

JavaScript 함수 정의 여부 확인하기

JavaScript에서 특정 함수가 정의되어 있는지 확인하려면 typeof 연산자를 사용하여 해당 함수가 "undefined"인지 검사하면 됩니다. 이 방법은 함수가 아직 선언되지 않았거나 이름이 잘못 작성된 경우에도 오류 없이 안전하게 동작한다는 장점이 있습니다.

기본 원리

존재하지 않는 변수에 직접 접근하면 ReferenceError가 발생하지만, typeof 연산자는 참조 오류를 발생시키지 않고 문자열 "undefined"를 반환합니다. 따라서 함수의 존재 여부를 확인할 때 가장 널리 사용되는 방식입니다.

예제

다음 예제를 실행하면 display() 함수가 정의되어 있는지 여부를 확인할 수 있습니다.

<!DOCTYPE html>
<html>
   <body>
      <script>
         function display() {
            alert("Hello World!");
         }
         if (typeof(display) === 'undefined') {
            document.write('undefined');
         } else {
            document.write("Function is defined");
         }
      </script>
   </body>
</html>

위 코드에서 display 함수는 이미 정의되어 있으므로, 조건문은 거짓이 되어 화면에 "Function is defined"라는 문구가 출력됩니다. 만약 함수가 정의되어 있지 않다면 "undefined"가 출력됩니다.

참고 사항

함수 존재 여부를 확인한 후에는 다음과 같이 안전하게 호출할 수 있습니다.

if (typeof myFunction === 'function') {
  myFunction();
}

typeof 결과가 "function"인지 직접 비교하는 방식은 변수가 함수 타입인지까지 함께 검증할 수 있어 더욱 견고한 코드를 작성하는 데 도움이 됩니다.