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

자바스크립트에서 함수가 정의되어 있는지 확인하는 방법

자바스크립트에서 특정 함수가 정의되어 있는지 확인하려면 typeof 연산자를 사용하여 해당 값이 "undefined"인지 검사하면 됩니다.

typeof 연산자란?

typeof는 변수나 함수의 데이터 타입을 문자열로 반환하는 자바스크립트의 기본 연산자입니다. 함수가 존재하면 "function"을 반환하고, 존재하지 않으면 "undefined"를 반환합니다.

함수가 아예 선언되지 않은 경우에도 typeof를 사용하면 에러 없이 안전하게 확인할 수 있습니다. 반면, 정의되지 않은 함수를 직접 참조하면 ReferenceError가 발생할 수 있으므로 주의해야 합니다.

예제 코드

아래 예제를 실행하면 자바스크립트에서 함수가 정의되어 있는지 여부를 확인할 수 있습니다.

<!DOCTYPE html>
<html>
   <body>
      <script>
         function display() {
            alert("Demo Text!");
         }

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

코드 설명

  • display()라는 함수를 먼저 정의합니다.
  • typeof(display)를 통해 해당 식별자의 타입을 확인합니다.
  • 반환값이 'undefined'와 일치하면 함수가 정의되지 않은 것으로 판단하고 'undefined'를 출력합니다.
  • 그렇지 않으면 "Function is defined"(함수가 정의됨)라는 메시지를 화면에 표시합니다.

참고 사항

typeof 비교 시 문자열 'undefined'는 작은따옴표 또는 큰따옴표 어느 쪽이든 사용할 수 있으며, 일반적으로 삼중 등호(===)를 사용하는 것이 타입 변환 없이 정확한 비교를 보장하기 때문에 권장됩니다.