[JavaScript] setTimeout(), setInterval()

2024. 7. 31. 18:14·JavaScript

 

오늘은 Javascript에서 제공하는 Timer 함수인 setTimeout(), setInterval() 함수에 대해 알아보도록 하겠습니다.

 

setTimeout()

  • 어떠한 코드를 실행하지 않고, 일정 시간 기다린 후에 실행하는 경우에 사용하는 함수
  • 첫 번째 인자로는 실행할 코드를 담고 있는 함수를 받고, 두 번째 인자로는 지연 시간을 ms 단위로 받습니다.
  • ex) setTimeout(() → console.log(”2초 후에 실행됨”), 2000)
  • 세 번째 인자부터는 가변 인자를 받게 됩니다. 첫번째 인자로 넘어온 함수가 인자를 받는 경우, 이 함수에 넘길 인자를 명시해 주기 위해서 사용합니다.
function add(x, y) {
  console.log(x + y);
}
setTimeout(add, 2000, 3, 4);

 

해당 코드를 실행했을 때, 2초 후에 3+4 값인 7을 출력하게 됩니다.

 

setInterval()

  • 웹페이지의 특정 부분을 주기적으로 업데이트 해줘야 하거나, 어떤 API로부터 변경된 데이터를 주기적으로 받아와야 하는 경우에 사용합니다.
  • 어떠한 코드를 일정 시간 간격을 두고 반복해서 실행하고 싶을 때 사용하는 함수입니다.
  • setTimeout과 같은 인자로 받습니다. 
  • ex) setInterval(() => console.log(new Date()), 2000)

해당 코드를 실행했을 때, 2초 주기로 오늘 날짜를 출력하게 됩니다. 

 

 

간단하게 setInterval(), setTimeout() 함수를 알아볼 수 있었습니다. 

 

SPA 개발에서는 Memory Leak를 방지하기 위해 clearTimeout(), clearInterval() 함수를 적극적으로 활용하여 Timer 객체를 제거해 주는 것이 좋은 습관이라고 합니다.

 

<참고 자료>

https://www.daleseo.com/js-timer/

 

자바스크립트의 setTimeout()과 setInterval() 함수

Engineering Blog by Dale Seo

www.daleseo.com

 

저작자표시 비영리 변경금지 (새창열림)

'JavaScript' 카테고리의 다른 글

[Frontend] localStroage vs SessionStorage  (0) 2024.07.11
[Frontend] JavaScript 디버깅을 위한 크롬 개발자 도구에 대해 알아보자  (0) 2024.06.01
'JavaScript' 카테고리의 다른 글
  • [Frontend] localStroage vs SessionStorage
  • [Frontend] JavaScript 디버깅을 위한 크롬 개발자 도구에 대해 알아보자
SeungbeomKim
SeungbeomKim
[IT(PS, CS, SW, etc.) 지식 기록] Github : https://github.com/daily1313/
  • SeungbeomKim
    개발 블로그
    SeungbeomKim
  • 전체
    오늘
    어제
    • 분류 전체보기 (384) N
      • 일상 (33)
        • 여행 (17)
        • 회고록 (9)
        • 리뷰 (7)
      • PS (138)
        • 그리디 알고리즘[Greedy] (25)
        • 정렬 알고리즘[Sort] (18)
        • 문자열 알고리즘[String] (14)
        • 동적 계획 알고리즘[DP] (17)
        • 깊이 우선 탐색, 너비 우선 탐색[DFS, BFS.. (34)
        • 재귀[Recursion] (2)
        • 백트래킹[Backtracking] (5)
        • 브루트포스 알고리즘[Bruteforce] (16)
        • 자료 구조[Data Structure] (4)
        • 분할 정복 알고리즘[Divide & Conquer.. (3)
      • CS (22)
      • Network (11)
      • Database (8)
        • Elasticsearch (3)
      • Linux (2)
      • JavaScript (4)
        • AngularJS (1)
      • Java (92)
        • Effective Java (5)
        • Java Concept (20)
        • Spring (61)
        • Design Pattern (3)
      • Python (2)
      • Vscode (1)
      • DevOps (43)
        • AWS (27)
        • Git (7)
        • Docker (6)
        • Nginx (1)
      • 자격증 (10)
        • SQL (4)
      • 사이드 프로젝트 (3) N
        • MatJido (3) N
      • 기타 (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 소개
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    다이나믹 프로그래밍
    Effective Java
    sqld
    docker
    dp
    Wi-Fi
    Spring
    백트래킹
    정보처리기사 실기
    정보처리기사
    정보처리기사 필기
    이펙티브 자바
    일본여행
    springboot
    BFS
    AWS
    메타코딩
    컴퓨터구조
    너비 우선 탐색
    dfs
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
SeungbeomKim
[JavaScript] setTimeout(), setInterval()
상단으로

티스토리툴바