본문 바로가기

언어/javascript

setInterval()이 한번만 실행되고 끝나는 경우

setInterval이 한번만 실행되고 끝나는 경우

setInterval을 이용해서 함수를 실행할 때,

function test(){
	alert("test");
}

setInterval(test(), 1000);

이런식으로 코드를 작성하면 test()함수는 한번만 실행이 된다.

만약 이 함수를 여러번 실행하고 싶다면

function test(){
	alert("test");
}

setInterval(test, 1000);

이런 코드를 작성해야 하는데, 이는 자바스크립트에서의 함수는 객체인 것을 명심해야 한다.

test와 test()의 차이는 test는 함수를 참조하지만 test()는 함수를 실행한다는 것에 있다.
따라서 setInterval(test(), 1000);는 interval이 함수에 적용이 되는것이 아니라, 함수의 결과 return에
적용이 되는것이기 때문에 함수는 한번 작동하고 그 한번 작동한 함수의 return값 대해(본 예제에서는 undefined)  interval하는 것이다.
따라서 interval마다 함수를 실행하려면, setInterval(test, 1000);를 이용하여 함수를 참조해야한다.

'언어 > javascript' 카테고리의 다른 글

javascript 조건연산자, 삼항연산자 사용법  (0) 2021.08.14