- 웹 브라우저에 의해 "탭"마다 하나씩 생성되는 객체로 브라우저를 제어할 수 있는 메서드를 제공한다. (새 창열기 메서드, 알림창, 컨펌창, prompt창 등)
- 웹 브라우저가 열리면 가장 먼저 window라는 객체가 만들어지고 밑으로 하위 요소에 해당하는 객체들이 나타난다.
| 종류 | 설명 |
|---|---|
| window | 브라우저 창이 열릴 때마다 하나씩 만들어진다. 브라우저 창 안의 요소 중 최상위 |
| document | 웹 문서마다 하나씩 있으며 바디태그를 만나면 만들어진다. |
| navigator | 현재 사용하는 브라우저의 정보가 들어있다. |
| history | 현재 창에서 사용자의 방문기록을 저장한다. |
| location | 현재 페이지의 url정보가 담겨있다. |
| screen | 현재 사용하는 화면 정보를 다룬다. |
alert(), confirm(), prompt() 등의 메서드는 window 객체의 메서드이므로 원래는 window.alert()로 작성해야한다.
하지만 window객체는 기본객체이므로 window.은 생략하여 사용한다.
자바스크립트 파일로 버튼 클릭 시 open 메서드를 호출하는 함수
var newWindow;
function test1() {
newWindow = open('08_함수.html','_self2', "width = 800, height = 500") ;
console.log(newWindow);
setTimeout(function() {
newWindow.alert("Hello JS");
}, 1000);
}
예) ie와 같은 구식 브라우저로 웹사이트에 접근 시 ie로는 사용하지 못합니다와 같은 경고문 출력 후 접근 거부
function test8() {
console.log(window.navigator);
}

주소창 관련 정보를 가진 객체
location.href = "https://naver.com";
방문 기록을 보관하고 있는 객체이며 보안문제로 읽기 전용이다.
접속 기기의 화면과 관련된 정보를 가진 객체(디바이스의 뷰포트(가로, 세로 길이 등)가 어떤지)
screen의 핵심속성
- width : UI영역(윈도우 작업표시줄, Mac의 독)을 포함한 화면의 너비
- height : UI영역을 포함한 화면의 높이
- availWidth : UI영역을 제외한 영역의 너비
- availHeight : UI영역을 제외한 영역의 높이
팝업을 화면 중앙에 띄우는 방법
var width = 300;
var height = 300;
var left = (screen.availWidth - width) / 2 + screen.availLeft;
var top = (screen.availHeight -height) / 2;
open("08_함수.html", "pop-up", `width=${width}, height=${height}, left=${left}, top=${top}`);
Node란?
모든 DOM 객체가 상속받는 객체로 HTML의 태그(요소) 뿐 아니라 주석(comment), 텍스트(text), 태그(Tag)까지 포함하여 모두 Node라고 부른다.모든 HTML 태그는 Node의 존재하는 메서드들을 사용할 수 있으며, EventTarget에 존재하는 "이벤트 속성"들을 사용할 수 있다.
노드 추가에 활용할 HTML
<div class="result"></div>
result 클래스를 가진 div태그에 직접 접근하여 text를 추가한다.
document.querySelector('.result').innerHTML = '<h3>안녕</h3>';
1) 요소 노드 만들기
- document.createElement(노드명)
새로운 h3 요소를 만들기 var elementNode = document.createElement('h3');
2) 텍스트 노드 만들기
- document.createTextNode(텍스트);
h3태그의 내용에 해당하는 텍스트 노드 만들기 var textNode = document.createTextNode('안녕');
3) 자식노드 연결하기
- 부모노드.appendChild(자식노드)
새로운 h3노드와 새로운 텍스트 노드 연결하기 elementNode.appendChild(textNode); result 클래스의 요소의 자식으로 elementNode 추가하기 document.querySelector('.result').appendChild(elementNode);
createElement 버튼 클릭 시 함수를 호출하여 동적으로 노드 추가 완료
| 추가 전 | 추가 후 |
|---|---|
![]() | ![]() |