노드
- node
- HTML DOM은 node라고 불리는 계층적 단위에 정보를 저장하고 있다.
 - 노드 트리는 최상위 레벨인 루트 노드부터 가장 낮은 레벨인 텍스트 노드까지 뻗어 내려간다.
 
 - 노드의 종류
- 문서 노드(document node)
- HTML 문서 전체를 나타내는 노드
 
 - 요소 노드(element node)
- 모든 HTML 요소는 요소 노드이며, 속성 노드를 가질 수 있는 유일한 노드
 
 - 속성 노드(attribute node)
- 모든 HTML 요소의 속성은 속성 노드이며, 요소 노드에 관한 정보를 가지고 있음
 - 해당 요소 노드의 자식 노드에는 포함되지 않음
 
 - 텍스트 노드(text node)
- HTML 문서의 모든 텍스트는 텍스트 노드
 
 - 주석 노드(comment node)
- HTML 문서의 모든 주석은 주석 노드
 
 
 - 문서 노드(document node)
 - 노드 접근 방법
- getElementsByTagName() 메소드 이용
 - 노드 간의 관계를 이용하여 접근하는 방법 (프로퍼티 이용)
- parentNode - 부모노드
 - childNodes - 자식노드 리스트
- var listItems = document.getElementById("list").childNodes;
 - listItems[1].firstChild.nodeValue = “변경내용”;
 
 - firstChild - 첫번째 자식노드
 - lastChild - 마지막 자식노드
 - nextSibling - 다음 형제노드
 - previousSibling - 이전 형제노드
 
 
 - 노드에 대한 정보 접근
- nodeName
- 노드 고유의 이름을 저장 (태그 이름 대문자로 저장)
 - 수정할 수 없는 읽기전용 프로퍼티
 - 예시
- document.getElementById("document").innerHTML = document.childNodes[1].nodeName; // HTML
 
 
 - nodeValue
- 노드의 값을 저장
 - 예시
- var headingText = document.getElementById("heading").firstChild.nodeValue;
 
 
 - nodeType
- 노드 고유의 타입 저장
 - 수정할 수 없는 읽기 전용 프로퍼티
 - 예시
- var headingType = document.getElementById("heading").firstChild.nodeType;
 
 
 
 - nodeName
 - 노드의 관리
- 노드의 추가
- 변수명.appedChild()
- 새로운 노드를 해당 노드의 자식 노드 리스트(child node list)의 맨 마지막에 추가
 
 - .insertBefore(새로운자식노드, 기존자식노드)
- 새로운 노드를 특정 자식노드 앞에 추가
 
 - insertData(인덱스, “새로운텍스트”)
- 텍스트 노드의 텍스트 데이터의 새로운 텍스트 추가
 
 
 - 변수명.appedChild()
 - 노드의 생성
- document.createElement(”요소”)
- 새로운 요소 노드 생성
 
 - document.createAttribute(”속성”)
- 새로운 속성 노드 생성
 - 이미 존재하는 요소 노드에 속성 노드 생성하고 싶다면 setAttribute() 메소드 사용
 
 - document.createTextNode(”텍스트”)
- 새로운 텍스트 노드 생성
 
 
 - document.createElement(”요소”)
 - 노드의 제거
- 변수명.removeChild(변수명2)
- 자식노드 리스트에서 특정 자식노드 제거
 
 - 변수명.removeAttribute(”속성”)
- 속성이름을 이용하여 특정 속성 노드 제거
 
 
 - 변수명.removeChild(변수명2)
 - 노드의 복제
- 복제할노드.cloneNode(true/false(자식노드 복제여부- true는 자식노드도 같이 복제, false는 속성노드만 복제))
- 기존 노드 복제
 - ex) parent.appendChild(originItem.cloneNode(true));
 
 
 - 복제할노드.cloneNode(true/false(자식노드 복제여부- true는 자식노드도 같이 복제, false는 속성노드만 복제))
 
 - 노드의 추가
 - 노드의 조작
- 노드의 값 변경
- nodeValue 프로퍼티 사용하여 특정 노드 값 변경
 - setAttribute() 메소드로 속성 노드의 속성값 변경
 
 - 텍스트 노드값 변경
- nodeValue 프로퍼티 사용
- ex) para.firstChild.nodeValue = "텍스트 변경";
 
 
 - nodeValue 프로퍼티 사용
 - 속성노드의 값 변경
- setAttribute() 메소드 사용
- document.getElementsByTagName("p")[0].setAttribute("class", "para");
 
 
 - setAttribute() 메소드 사용
 - 요소 노드의 교체
- replaceChild() 메소드 사용
- 교체할 노드 = 부모노드.replaceChild(새로운자식노드, 기존자식노드)
 
 
 - replaceChild() 메소드 사용
 - 텍스트 노드의 데이터 교체
- replaceData() 메소드 사용
- 텍스트노드.replaceData(인덱스, 교체할문자수, “새로운텍스트”)
 
 
 - replaceData() 메소드 사용
 
 - 노드의 값 변경
 
브라우저 객체 모델(BOM)
- Window 객체
- Window 객체
- JS의 모든 객체, 전역함수, 전역변수들은 자동으로 window 객체의 프로퍼티가 된다
 - window 객체의 메소드는 전역함수이며, window 객체의 프로퍼티는 전역변수
 - 문서객체모델(DOM)의 요소들도 window 객체의 프로퍼티
 
 - 관련 메소드
- 브라우저 새창열기
- window.open(”경로”, “이름”, 옵션들)
 
 - 브라우저 창닫기
- 변수명.close();
 
 
 - 브라우저 새창열기
 
 - Window 객체
 - Location 객체
- Location 객체
- 현재 브라우저에 표시된 HTML 문서의 주소를 얻거나, 브라우저에 새 문서를 불러올 때 사용
 
 - 관련 메소드
- 현재 문서의 URL
- location.href
 
 - 현재 문서의 호스트 이름
- location.hostname
 
 - 현재 문서의 파일 경로명
- location.pathname
 
 - 현재 창에 문서 불러오기
- location.assgin(”경로/파일명”)
 - location.replace(”경로/파일명”)
- replace는 브라우저의 히스토리에서 제거(뒤로가기 못함)
 
 - location.reload()
- 현재 문서를 다시 불러오는
 
 
 
 - 현재 문서의 URL
 
 - Location 객체
 - History 객체
- History 객체
- 브라우저의 히스토리 정보를 문서와 문서상태 목록으로 저장하는 객체
 
 - 관련 메소드
- 히스토리 목록 개수
- history.length
 
 - 히스토리 목록 접근
- 이전 페이지로 가기
- window.history.back();
 
 - n 수만큼 히스토리 목록 사이 이동
- window.history.go(-1);
 
 - 다음 페이지로 가기
- window.history.forward();
 
 
 - 이전 페이지로 가기
 
 - 히스토리 목록 개수
 
 - History 객체
 - Screen 객체
- Screen 객체
- 사용자의 디스플레이 화면에 대한 다양한 정보를 저장하는 객체
 
 - 관련 프로퍼티
- 모니터 크기 반환
- screen.width, screen.height
 
 - 브라우저창 크기 반환
- window.outerWidth, window.outerHeight
 
 - 실제 사용할 수 있는 화면 크기
- screen.availWidth, screen.availHeight
 
 
 - 모니터 크기 반환
 
 - Screen 객체
 - Navigator 객체
- Navigator 객체
- 브라우저 공급자 및 버전정보 등을 포함한 브라우저에 대한 다양한 정보 저장하는 객체
 
 - 관련 프로퍼티
- 현재 사용하고 있는 브라우저의 이름
- navigator.appName
 - navigator.appCodeName
 
 - 현재 브라우저의 버전
- navigator.appVersion
 - navigator.userAgent
 
 - 기본 언어 설정
- navigator.language
 
 
 - 현재 사용하고 있는 브라우저의 이름
 
 - Navigator 객체
 - 대화 상자
- alert() 메소드
- window.alert(”메시지”)
 
 - confirm() 메소드
- 메시지 출력 후 사용자가 확인이나 취소 누르면 boolean 값으로 해당 결과 반환
 - window.confirm(”메시지”)
 
 - prompt() 메소드
- 메시지 출력 후 사용자가 입력한 문자열 반환
 - window.prompt(”메시지”, “입력란의 기본 메시지”)
 
 - showModalDialog()
- 좀 더 복잡한 대화상자 만들기
 
 
 - alert() 메소드
 - 타이머
- 관련 메소드
- window.setTimeout(호출할함수, 밀리초);
- 해당 밀리초가 지난 뒤에 함수 호출
 
 - window.setInterval(호출할함수, 밀리초);
- 지정된 시간마다 함수 반복적으로 호출
 
 - window.clearTimeout(타임아웃ID);
- setTimeout() 메소드의 반환값을 전달하면 계획된 함수의 호출 취소
 
 - window.clearInterval(타임아웃ID);
- setTimeout() 메소드의 반환값을 전달하면 반복되는 함수의 호출 취소
 
 
 - window.setTimeout(호출할함수, 밀리초);
 
 - 관련 메소드
 
728x90
    
    
  'JS & TS > JavaScript' 카테고리의 다른 글
| [JavaScript] 예외처리 (0) | 2025.03.22 | 
|---|---|
| [JavaScript] 이벤트 (0) | 2025.03.22 | 
| [JavaScript] 객체 (0) | 2025.03.22 | 
| [JavaScript] 함수, 변수/함수 범위, 매개변수/인수 (0) | 2025.03.22 | 
| [JavaScript] 배열 (0) | 2025.03.22 |