| window 객체란?
다른 말로 '전역 객체(글로벌 객체)'라고 하며, 브라우저의 요소들과 자바스크립트 엔진, 그리고 모든 변수를 담고 있는 객체이다. 콘솔창에 window를 치고 .(점)을 치는 순간 엄청난 길이의 메서드 추천 목록이 뜨는데 이것들은 바로 윈도우 객체의 속성과 메소드들이다. 사실 window는 모든 객체의 조상이므로 객체를 다 포함하고 있기 때문에 생략이 가능하다.
여기에 속한 메서드에 경고창을 띄어주는 alert, setTimeout 과 같은 메서드 등이 있다.
여기서는 지정한 시간이 흐른 다음 한번 이상 호출되는 함수를 등록할 수 있는 메서드인 setTimeout, serInterval , clearInterval 정도만 살펴보도록 하겠다.
메서드 일부만
1) setTimeout()
setTimeout은 일정 시간후 함수를 실행하는 것으로 조금 낯설게 동작한다. 인자로 함수를 받고 있고있다. (참고로 인자로 함수를 받고 있는 경우를 callback함수라고 한다.) 그리고 setTimeout의 실행은 비동기(asynchronous)로 실행되어 동기적인 다른 실행이 끝나야 실행된다.
즉 setTimeout 안의 함수(콜백함수)는 run 함수의 실행이 끝나고서, (정확히는 stack에 쌓여있는 함수의 실행이 끝나고 나서 실행됨) 실행된다.
2) setInterval()
setInterval의 경우 일정 시간마다 반복을 실행한다. 이게 페이지가 바뀌거나 새로고침 될 때까지 무한정 실행된다.
우리 근처에서 setInterval의 사용 예를 살펴보자면 다음과 같다.
1. 갤러리 형식의 뷰를 만들어 이미지를 정해진 시간 간격으로 바꾸어 적용하는 경우
2. 일정 시간 간격으로 배너광고를 바꾸면서 보여줄 경우
3. 일정 주기로 계속해서 서버와 통신이 필요한 경우
물론 위의 경우를 제외하고 정말 다양하게 사용된다.
3) clearInterval()
위에서 살펴본 serInterval가 특정조건에서 더 이상 동작하지 않기를 원할 때 사용하는 것으로 setInterval 함수 실행 시, 반드시 return 값 (intervalID)을 반환 받아서 가지고 있어야 한다.
'■ 용어 정리' 카테고리의 다른 글
[용어정리] AJAX 통신 (XMLHTTPRequest 통신) (0) | 2020.04.28 |
---|---|
[용어정리] DOM (Document Object Model) (0) | 2020.04.28 |
[용어정리] JDBC(Java Database Connectivity) (0) | 2020.04.28 |
[용어정리] Maven 란? (0) | 2020.04.28 |
[용어정리] REST API 란? (0) | 2020.04.28 |