상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - JavaScript의 'setTimeout' 함수는 어떻게 작동하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`setTimeout` 함수는 JavaScript에서 비동기적으로 코드를 실행하기 위해 사용되는 내장 함수입니다. 이 함수는 특정 시간(밀리초 단위) 후에 지정된 함수를 호출하도록 예약합니다. `setTimeout`은 이벤트 루프와 태스크 큐를 활용하여 비동기 작업을 처리하는 데 중요한 역할을 합니다. 기본 사용법 `setTimeout` 함수의 기본 구문은 다음과 같습니다: ```javascript setTimeout(function, delay, arg1, arg2, ...); ``` - function : 지연 후에 실행할 함수입니다. 이 함수는 <a href='https://sangseek.com/sangseeks/인라인/ko'>인라인</a> 함수로 정의할 수도 있고, 이미 정의된 함수를 참조할 수도 있습니다. - delay : 함수가 실행되기 전 대기할 시간(밀리초)입니다. 예를 들어, 1000을 입력하면 1초 후에 함수가 실행됩니다. - arg1, arg2, ... : 선택적으로, 호출될 함수에 <a href='https://sangseek.com/sangseeks/전달/ko'>전달</a>할 인수들입니다. 예제 ```javascript console.log("Start"); setTimeout(() => { console.log("This message is delayed by 2 seconds"); }, 2000); console.log("End"); ``` 위의 코드를 실행하면, "Start"와 "End"가 즉시 출력되고, 2초 후에 "This message is delayed by 2 seconds"가 출력됩니다. 이는 `setTimeout`이 비동기적으로 작동하기 때문입니다. 동작 원리 1. 이벤트 루프 : JavaScript는 단일 스레드로 작동하지만, 비동기 작업을 처리하기 위해 이벤트 루프를 사용합니다. `setTimeout`이 호출되면, 지정된 시간 후에 실행할 작업이 태스크 큐에 추가됩니다. 2. 타이머 설정 : `setTimeout`이 호출되면, 브라우저는 타이머를 설정하고, 지정된 시간이 지나면 해당 작업을 태스크 큐에 넣습니다. 3. 태스크 큐 : 이벤트 루프는 <a href='https://sangseek.com/sangseeks/호출 스택/ko'>호출 스택</a>이 비어 있을 때 태스크 큐에서 작업을 가져와 실행합니다. 이 과정에서 비동기 작업이 실행됩니다. 주의사항 - 최소 지연 시간 : 브라우저의 구현에 따라 `setTimeout`의 지연 시간은 최소 4ms로 제한될 수 있습니다. 이는 브라우저의 최적화와 관련이 있습니다. 따라서, 매우 짧은 지연 시간(예: 0ms)을 설정하더라도 실제로는 약간의 지연이 발생할 수 있습니다. - 취소 : `setTimeout`은 반환값으로 타이머 ID를 반환합니다. 이 ID를 사용하여 `clearTimeout` 함수를 호출하면 예약된 작업을 취소할 수 있습니다. ```javascript const timerId = setTimeout(() => { console.log("This will not run"); }, 2000); clearTimeout(timerId); // 이 호출로 인해 위의 메시지는 출력되지 않음 ``` 결론 `setTimeout` 함수는 JavaScript에서 비동기 처리를 위한 중요한 도구입니다. 이를 통해 개발자는 특정 작업을 지연시켜 실행하거나, 사용자 인터페이스의 반응성을 개선할 수 있습니다. 하지만 비동기 프로그래밍의 특성을 이해하고, 이벤트 루프와 태스크 큐의 작동 방식을 잘 알고 있어야 효과적으로 사용할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기