# BOM - innerWidth, innerHeight 뷰포트의 크기. 스크롤바 포함 - outerWidth, outerHeight 브라우저의 크기 - scrollX = pageXOffset, scrollY = pageYOffset 스크롤된 픽셀 크기 - screenX = screenLeft, screenY = screenTop 모니터 좌표 (0, 0)에서부터 뷰포트 까지의 픽셀 거리 - open() - close() - moveTo() - moveBy() - resizeBy() - resizeTo() - scroll(option) ```javascript window.scroll({top:100, left:100, behavior:"smooth"}); ``` - scrollBy(x, y) - scrollTo(x, y) - addEventListener(eventType, listener) ```javascript window.addEventListener('DOMContentLoaded', (event) => { // }); ``` - removeEventListener(eventType, listener) ## 대화상자 - alert(message) 알림 대화상자 - confirm(message) 확인 대화상자. true/false를 반환 - prompt(message) 입력 대화상자. 사용자가 입력한 텍스트를 반환하거나 null을 반환 ## 타이머 - setTimeout(callback, ms) 지연 시간 이후에 함수를 실행. 고유아이디를 반환. - setInterval(callback, ms) 지연 시간마다 함수를 반복 실행. 고유아이디를 반환. - clearTimeout(id) - clearInterval(id) ```javascript let uId = setInterval(() => { document.querySelector('#box').innerHTML = new Date(); }, 1000); // 1초마다 새로 고침 setTimeout(() => { clearInterval(uId); }, 5000); // 5초 후에 새로 고침 중단 ``` ## Console - log(message) - debug(message) - info(message) - warn(message) - error(message) - assert(expression, message) 매개 변수가 false인 경우에 메시지와 함께 스택 추적을 출력합니다. - clear() 콘솔의 출력을 지웁니다. - trace() 콘솔에 스택 추적을 출력합니다. - table(obj) 배열이나 객체 등을 콘솔에 표 형태로 출력합니다. ## History - length 방문 기록에 저장된 페이지 갯수 - back() 뒤로 가기 - forward() 앞으로 가기 - go(number) number가 0이면 새로 고침. -2이면 2 페이지 뒤로 가기. ## Screen - width, height 모니터 화면의 전체 픽셀 크기 - availWidth, availHeight 작업표시줄 등을 제외한 모니터 크기 - pixelDepth - colorDepth ```javascript function getScreenSize(){ return { width: window.screen.width, height: window.screen.height }; } ``` ## Location - href 현재 페이지의 URI - protocol, host, hostname, port, pathname, search, hash URI 중 특정 부분 - assign(uri) 다른 페이지로 이동 - replace(uri) 다른 페이지로 이동. 히스토리를 남기지 않습니다. - reload() 새로 고침. 매개 변수로 true를 전달하면 강력 새로 고침. ## Navigator - onLine 온라인 여부를 true / false로 반환 - cookieEnabled 쿠키 사용 가능 여부 - language - appName, appVersion, appCodeName, platform - userAgent - javaEnabled ```javascript function isConnected() { return navigator.onLine; } window.addEventListener("online", function () { console.log("연결됨"); }); window.addEventListener("offline", function () { console.log("연결 끊김"); }); ```