javascript

타이머 함수

노엠디엔 2023. 7. 26. 01:57

함수를 명시적으로 호출하면 함수가 즉시 실행된다. 함수를 명시적으로 호출하지 않고

일정 시간이 경과된 이후에 호출되도록 함수 호출을 예약하려면 타이머 함수를 사용한다.

이를 호출 스케줄링 이라 부른다

자바스크립트는 타이머를 생성할 수 있는 함수 setTimeout과 setInterval 
타이머를 제거할 수 있는 함수 clearTimeout 과 clearInterval을 제공한다.

 

타이머 함수는 ECMAScript 사양에 정의된 빌트인 함수가 아니라고 한다.

ECMAScript란? JavaScript의 표준 사양을 정의하는 국제 표준화 기구인
Ecma International에서 관리하는 스크립트 언어 규격

 

브라우저 환경과 Node.js환경에서 모두 전역 객체의 메서드로서 타이머 함수를 제공한다.

즉, 타이머 함수는 호스트 객체다?

 

타이머 함수는 생성한 타이머가 만료되면 콜백함수가 호출하며 자바스크립트 엔진은 하나의 실행 콘텍스트 스택을 갖기 때문에 두 가지 이상의 태스크를 동시에 실행할 수 없다.

자바스크립트 엔진은 싱글 스레드로 동작한다.

이러한 이유로 타이머 함수는 비동기 처리 방식으로 동작한다고 한다.

setTimeout사용

setTimeout함수는 생성된 타이머를 식별할 수 있는 고유한 타이머 id를 반환한다.

id는 브라우저 환경인 경우 숫자, Node.js 환경인 경우 객체다.

id를 clearTimout 함수의 인수로 전달하여 타이머를 취소할 수 있다.

콜백 함수인 console.log(hi)가 출력되지 않는다.

 

setInterval 함수는 두 번째 인수로 전달받은 시간으로 반복  동작하는 타이머를 생성한다.

인수는 setTimeout과 동일하다.

 

 

 

책 : 모던 자바스크립트 Deep Dive

'javascript' 카테고리의 다른 글

제네레이터  (0) 2023.08.16
디바운스와 스로틀  (1) 2023.07.27
이벤트  (0) 2023.07.20
RegExp정규 표현식  (0) 2023.06.07
Number  (0) 2023.06.07