자바스크립트 타이머 예제

setInterval.Below를 사용하여 타이머 기능을 쉽게 만들 수 있습니다. 또한 이 함수를 이름으로 사용하고 위의 예제와 같은 인라인 함수를 사용하지 않을 수도 있습니다. 위의 예제에서는 1초 후에 showTime() 함수를 반복적으로 실행합니다. 이 함수는 컴퓨터의 현재 시간을 검색하여 브라우저에 표시합니다. 2 분의 타이머를 설정하고 페이지 경고까지 시간 때 자바 스크립트 코드는 “시간”. setTimeout() 메서드는 함수를 호출하거나 지정된 밀리초(trillion) 후에 식을 평가합니다. JavaScript 코드의 성능을 향상시키는 인기있는 방법은 0ms의 지연이있는 setTimeout 호출로 타이머를 설정하는 것입니다. 이렇게 하면 현재 동기 코드와 큐의 이전 메시지가 실행이 끝나자마자 코드의 메시지 큐에 타이머가 추가되어 setTimeout 비동기로 실행되는 코드: JavaScript를 사용하여 타이머에서 사용할 두 가지 주요 메서드 are: 타이머 함수에 대한 몇 가지 예와 도전을 해봅시다. 다음 예제는 2초마다 메시지를 표시합니다.

5 초 후, 출력이 중지됩니다 : 그런데 Node.jss에서 Node.js 타이머 API에는 setTimeout을 수행하는 또 다른 방법이 있습니다. 이 예제에서는 디지털 시계와 같이 초당 한 번씩 “myTimer”라는 함수를 실행합니다. 두 개의 서로 다른 타이머가 있고 하나의 타이머만 다시 시작되는 예제입니다. 예제를 통해 이 점을 분명히 말씀드리겠습니다. 다음은 반 초 후에 실행해야하는 간단한 setTimeout 호출이지만 타이머 함수가 실행되는 위치에 따라 대답이 다릅니다. 이 경우 호출자의 위치에 의존할 수 없습니다. 타이머 구현이 지금 함수를 호출하는 호출기 구현이 되므로 호출자를 제어할 수 없습니다. 노드 REPL에서 테스트하는 경우 호출자로 Timetout 개체를 얻을 수 있습니다: 노드에서 타이머는 브라우저의 창 인터페이스와 유사하게 작동되는 전역 개체의 일부입니다. 노드에서 타이머의 소스 코드를 볼 수 있습니다.

이전 예제에서는 0 ms 이후에 setTimeout으로 무언가를 실행하는 것이 setTimeout 줄 다음에 바로 실행하는 것을 의미하지 않고 스크립트의 다른 모든 것 (clearTimeout 호출 포함)에 바로 실행하는 방법을 알아 차셨습니까? setTimeout 호출은 타이머 “ID”를 반환하고 해당 타이머를 취소하는 clearTimeout 호출과 함께 해당 타이머 ID를 사용할 수 있습니다. 다음은 이 예제에서 타이머를 정의한 직후에 큰 for 루프로 런타임을 동기적으로 차단합니다. 1e10은 10 개의 영점 앞에 10 개의 제로이므로 루프는 100 억 개의 틱 루프 (기본적으로 바쁜 CPU를 시뮬레이션)입니다. 이 루프가 똑딱거리는 동안 노드는 아무 것도 할 수 없습니다. 브라우저 및 OS 수준 성능 설정에 따라 최소 타이머 해상도(최소 지연)를 300ms 또는 1000ms로 늘릴 수 있습니다. 경고 출력에서 볼 수 있듯이 브라우저에서 타이머 식별자는 숫자입니다. 다른 환경에서는 다른 환경일 수 있습니다. 예를 들어 Node.js는 추가 메서드를 통해 타이머 개체를 반환합니다. 두 번째 타이머가 첫 번째 타이머를 실행하기 전에 첫 번째 타이머를 취소하기 때문에 이 작업을 사용하여 콘솔에 아무 것도 인쇄되지 않습니다.

어떤 사람들은 이것이 나쁜 인터뷰 질문이라고 생각할 수도 있습니다 – 왜 이 문제를 아는가?! 자바 스크립트 개발자로서, 당신이하지 않으면, 그것은 당신이 완전히 V8 (및 기타 VM)가 브라우저와 노드와 상호 작용하는 방법을 이해하지 못하는 신호가 될 수 있기 때문에 이것을 알고 있다고 생각합니다.