> For the complete documentation index, see [llms.txt](https://april.gitbook.io/learning-js/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://april.gitbook.io/learning-js/chapter-14./14.2/14.2.1-setinterval-clearinterval.md).

# 14.2.1 setInterval과 clearInterval

### setTimeout과의 차이점

* setTimeout은 콜백 함수를 한 번만 실행하고 멈춤
* setInterval은 콜백을 정해진 주기마다 호출하며 clearInterval을 사용할 때까지 멈추지 않음

```javascript
const start = new Date();
  let i = 0;
  const intervalId = setInterval(function () {
    let now = new Date();

    // 분이 넘어가거나 10번 반복할때까지 5초마다 콜백 실행
    if (now.getMinutes() !== start.getMinutes() || ++i>10)
      return clearInterval(intervalId);
    console.log(`${i}: ${now}`);
  }, 5 * 1000);
```

```bash
1: Tue Nov 13 2018 16:27:21 GMT+0900 (한국 표준시)
2: Tue Nov 13 2018 16:27:26 GMT+0900 (한국 표준시)
3: Tue Nov 13 2018 16:27:31 GMT+0900 (한국 표준시)
4: Tue Nov 13 2018 16:27:36 GMT+0900 (한국 표준시)
5: Tue Nov 13 2018 16:27:41 GMT+0900 (한국 표준시)
6: Tue Nov 13 2018 16:27:46 GMT+0900 (한국 표준시)
7: Tue Nov 13 2018 16:27:51 GMT+0900 (한국 표준시)
8: Tue Nov 13 2018 16:27:56 GMT+0900 (한국 표준시)
```
