더북(TheBook)

기존 시간에서 0.1을 빼는 코드가 보이지 않습니다. 그 대신 time = (time * 10 - 1) / 10이라는 코드가 있습니다. 이 코드는 기존 시간에 10을 곱한 뒤 1을 빼고 다시 그 값을 10으로 나누는 것이므로 0.1을 빼는 것과 같습니다. 단순히 0.1을 빼는 대신 이와 같이 복잡하게 계산하는 이유를 모르겠다면 2.2.2절실수 연산 시 주의할 점을 다시 살펴보기 바랍니다.

코드를 보면 time이 0이 됐을 때(시간 초과) setTimeout()을 호출합니다. alert() 메서드는 화면이 움직이는 것을 즉시 멈추고 대화상자를 띄우기 때문에 화면의 변경 사항이나 애니메이션이 있으면 이것까지 멈추게 합니다. 실제로 setTimeout()을 제거하고 실행해 보면 alert() 메서드가 0초로 바뀌는 것을 막아 버려 0.1초에서 대화상자가 표시되는 것을 볼 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.