새소식

반응형
JavaScript/javascript

Javascript 함수(function)에 괄호 () 여부

  • -
반응형

Javascript 에서 함수를 생성하고 해당 함수를 괄호 없이 호출할때가 있다.

함수를 호출할 때 괄호가 있을때와 없을때의 차이점을 알아보자

 

아래와 같은 예시가 있다.

a 라는 함수에 console.log 를 찍는 함수인데 괄호 없이 a 함수를 호출했을 때는 함수 그 자체를 보여준다.

 

하지만 a(); 처럼 괄호를 붙일 경우 함수 내부에 선언된 console.log 가 정상적으로 찍힌다.

 

이유는 함수에 () 괄호가 붙을 경우 자바스크립트 함수를 즉시 호출한다.

하지만 함수에 () 괄호가 없을 경우 함수의 주소를 뜻한다.

 

추가로 아래 예시도 확인하자.

 

setInterval() 을 통해 1초마다 함수를 호출하는 구문이다.

1초마다 a라는 함수를 괄호없이 잘 호출하는걸 볼 수 있다.

setInterval() 을 통해 a 함수를 괄호없이 함수 그 자체를 선언해놨기 때문에 1초마다 잘 호출한다.

 

위 내용을 풀어 쓰면 아래와 같다.

setInterval(
    function a(){console.log('123')}, 1000
)

a 라는 함수 그 자체를 setInterval 에 넣어줬기 때문에 1초마다 함수를 실행한다.

 

 

 

하지만 아래와 같이 a() 라고 a 함수에 () 괄호를 써 즉시 호출하면 console.log('123')을 찍은 다음에

호출할 함수가 없으므로 setInterval은 실행되지 않는다.

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.