자바스크립트에서 함수를 즉시 실행시키지 않고 일정 시간 뒤에 실행되도록 실행을 지연시킬 수 있습니다.
시간 지연 함수 setTimeout()는 실행시킬 함수와 지연시킬 시간을 인자로 받으며, 입력된 시간 뒤에 함수를 실행합니다. 예제와 함께 자세히 알아보겠습니다.
1. setTimeout()의 Syntax
setTimeout()은 인자로 함수와 milliseconds를 받으며, milliseconds 만큼 시간이 지난 뒤에 함수를 실행시킵니다.
setTimeout(func, milliseconds);2. setTimeout() : 함수 실행 지연 예제
아래 예제에서는 코드의 실행 시간을 쉽게 볼 수 있게 로그의 끝에 new Date()으로 현재 시간도 함께 출력하도록 하였습니다.
function greet() {
console.log('Hello world: ' + new Date().toLocaleTimeString());
}
console.log('Scheduling a task in 3 sec: ' + new Date().toLocaleTimeString());
setTimeout(greet, 3000);
console.log('Do other things: ' + new Date().toLocaleTimeString());결과를 보면, setTimeout() 전후의 로그는 거의 동일 시간에 출력되었습니다. 하지만 greet() 함수는 바로 실행되지 않고 3초 뒤에 실행되었습니다.
setTimeout()이 호출되었을 때, 3초 뒤에 greet()을 실행하도록 설정하였기 때문에 늦게 실행되었습니다.
Scheduling a task in 3 sec: 8:26:10 PM
Do other things: 8:26:10 PM
Hello world: 8:26:13 PM3. clearTimeout() : 요청한 지연 작업 취소
setTimeout()은 함수 지연을 요청하고 그 요청에 대한 id를 리턴합니다.
clearTimeout(id)는 인자로 전달된 id의 요청을 삭제하여 함수가 호출되지 않도록 합니다.
아래 예제를 보시면 3초 뒤에 greet()이 실행되도록 하였지만, 바로 clearTimeout()을 호출하여 요청을 취소하였습니다.
greet()은 수행되지 않고 프로그램이 종료됩니다.
function greet() {
console.log('Hello world: ' + new Date().toLocaleTimeString());
}
console.log('Scheduling a task in 3 sec: ' + new Date().toLocaleTimeString());
let id = setTimeout(greet, 3000);
console.log('Canceling ' + id + ': ' + new Date().toLocaleTimeString());
clearTimeout(id);Output:
Scheduling a task in 3 sec: 8:29:45 PM
Canceling 4: 8:29:45 PMLoading script...
Related Posts
- ESLint warning, Expected '===' and instead saw '==' eqeqeq
- Javascript - 현재 날짜/시간을 항상 한국 기준으로 가져오기
- Javascript - 문자열 사이에 문자 넣기
- Javascript - 버튼 활성화/비활성화 시키는 방법
- Javascript - 버튼 이름 변경하기
- Javascript - div 안의 내용 가져오기, 변경, 추가, 삭제
- Javascript - <ol>, <ul>에 <li> 동적 추가, 삭제
- Javascript - div 생성, 추가, 삭제 방법
- Javascript - 테이블 행(tr) 숨기기, 보이기
- Javascript - div에 링크 거는 방법
- Javascript - 자식 요소(element) 개수 확인
- Javascript - 요소(element) 복사, 붙여넣기
- Javascript - div에 클릭 이벤트(onclick) 설정 방법
- Javascript - 체크박스 선택/해제 시, 텍스트박스 활성화/비활성화
- Javascript - input 숫자만 입력받도록 설정
- Javascript - 자식 노드 모두 제거
- Javascript - 체크박스 선택, 해제 방법
- Javascript - input text 값 가져오기
- JavaScript - 문자열을 배열(Array)로 변환
- JavaScript - 특정 문자열의 포함 여부 확인 (includes, 정규표현식)
- JavaScript - 문자열 비교 방법, 5가지
- JavaScript - 문자열 바꾸기(replace, 정규식 치환)
- JavaScript - 배열 전체 출력 (for, forEach, for in, for of)
- JavaScript - 한번만 실행되는 함수 (once: true)
- JavaScript - 선택된 checkbox 값 가져오기
- JavaScript - div, 태그 안의 내용 가져오기
- JavaScript - element(버튼, div) 보이기 숨기기
- JavaScript - 숫자를 배열로 변경하는 방법
- JavaScript - 부모, 형제, 자식 element 찾기
- JavaScript - 클래스 이름으로 element 찾는 방법
- JavaScript Array find() 함수
- JavaScript Array splice() 함수
- JavaScript의 contains() 함수
- JavaScript sort() 함수, 예제 소개
- JavaScript - Set 생성 및 초기화