JavaScript의 'setTimeout' 함수는 어떻게 작동하나요?
_____A1: setTimeout 함수는 지정한 시간(밀리초 단위) 후에 특정 함수를 한 번 실행하도록 예약하는 JavaScript의 내장 함수입니다.
Q2: setTimeout 함수의 기본 사용법은 어떻게 되나요?
A2: `setTimeout(실행할함수, 지연시간, 인자1, 인자2, ...)` 형태로 사용합니다. 예를 들어, `setTimeout(() => { console.log('Hello'); }, 1000);`는 1초 후에 콘솔에 "Hello"를 출력합니다.
Q3: 지연시간은 어떻게 동작하나요?
A3: 지연시간은 밀리초 단위입니다. 예를 들어, 1000이면 약 1초 후에 콜백 함수가 실행됩니다. 단, 정확히 지정된 시간에 바로 실행되는 것은 아니며, 이벤트 루프와 현재 실행 중인 작업에 따라 약간 지연될 수 있습니다.
Q4: setTimeout이 반환하는 값은 무엇인가요?
A4: setTimeout은 예약된 작업을 식별하는 타이머 ID(숫자 또는 객체)를 반환합니다. 이를 통해 나중에 clearTimeout을 사용해 예약된 실행을 취소할 수 있습니다.
Q5: setTimeout을 취소하려면 어떻게 하나요?
A5: `clearTimeout(타이머ID)` 함수를 사용합니다. 예를 들어:
```javascript
let timerId = setTimeout(() => { console.log('Hi'); }, 5000);
clearTimeout(timerId); // 5초 후 실행 취소
```
Q6: 여러 개의 인자를 콜백 함수에 전달할 수 있나요?
```javascript
setTimeout((msg) => { console.log(msg); }, 1000, 'Hello'); // 1초 후 "Hello" 출력
```
Q7: setTimeout 내부에서 this는 무엇을 가리키나요?
A7: 일반 함수 선언 시에는 전역 객체(window 또는 undefined strict mode) 또는 호출 컨텍스트를 따릅니다. 만약 화살표 함수를 사용하면 부모 스코프의 this를 유지합니다.
Q8: setTimeout과 setInterval의 차이는 무엇인가요?
A8: setTimeout은 한 번만 실행되는 반면, setInterval은 지정한 간격마다 반복 실행됩니다.
Q9: setTimeout을 0으로 설정하면 즉시 실행되나요?
A9: 0 밀리초 지연은 가능한 한 빨리 실행을 시도한다는 의미지만, 실제 실행은 현재 실행 중인 스크립트가 끝난 뒤 이벤트 큐에 들어가므로 즉시 실행되는 것은 아닙니다.
Q10: setTimeout을 비동기 작업 제어에 어떻게 활용하나요?
A10: 비동기 작업 실행 지연, 순차 실행, 이벤트 루프 테스트 등에 사용되며, Promises나 async/await와도 병행해 사용할 수 있습니다.
---
요약하자면, setTimeout은 특정 시간 후에 콜백 함수를 한 번 실행하는 비동기 타이머 함수로, 타이머 ID 반환과 실행 취소 기능을 제공하며, 이벤트 루프의 동작 방식에 따라 실행 시점이 결정됩니다.
작성자:
김승우 [비회원]
| 작성일자: 1년 전
2024-09-12 16:03:41
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.