📖 Reference
📎https://www.w3schools.com/js/js_htmldom.asp
📎https://learn.javascript.ru/browser-environment
📎https://tcpschool.com/javascript/js_intro_basic
📎https://developer.mozilla.org/ko/docs/Learn/JavaScript/First_steps/What_is_JavaScript
📎https://developer.mozilla.org/ko/docs/Web/JavaScript
최상위객체 이자 전역 객체 이면서 모든 객체가 소속된 글로벌 객체 이다.window 를 생략하고 바로 사용할수 있다. ex) alert("안녕하세요");

html 태그를 동적으로 제어 한다.태그(tag)들을 각기 하나의 객체 로 만든다.노드 트리(node tree) 구조의 객체들로 나타낸다.

| 노드 종류 | 역할 |
|---|---|
| Document Node | 트리의 최상위에 존재하는 HTML 문서 전체 |
| Element Node | 등의 태그들 |
| Attribute Node | 등의 태그(Tag)안의 name, value 등의 속성 |
| Text Node | HTML 문서의 모든 텍스트 표현 |
| Comment Node | HTML 문서의 모든 주석 |
Window 아래 존재한다.window 를 제어한다.| 객체 종류 | 역할 |
|---|---|
| window | 최상위 객체로 각 프레임별 하나씩 존재 |
| location | url 주소에 대한 정보 제공 |
| document | 현재 문서에 대한 정보 |
| navigator | 브라우저의 정보를 제공, 주로 호환성 문제를 위해 사용 |
| history | 브라우저의 방문 기록 정보를 제공 |
| screen | 브라우저의 외부 환경에 대한 정보를 제공 |
JavaScript는 웹을 위한 인터프리터 언어 이자 객체기반의 스크립트 프로그래밍 언어
JS는 객체 기반의 스크립트 언어이다.
JS는 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어이다.
JS는 객체지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있다.
- 스크립트 언어(scripting language) : 응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어, 기존에 이미 존재하는 소프트웨어(애플리케이션)을 제어하기 위한 용도로 쓰인다.
- 인터프리터 언어(interpreted language) : 실행 즉시 인터프리터를 거쳐 실행되는 프로그래밍 언어, 인터프리터를 거치기 때문에 컴파일 언어보다 실행 속도가 느리다.
- 컴파일 언어(compiled language) : 코드가 실행되기 전 컴파일러를 거쳐서 기계어로 모두 변환되어 실행되는 프로그래밍 언어, 인터프리터 언어와는 달리 인터프리터를 거치지 않아 속도가 상대적으로 빠르다.
일반적으로 JS는 위에서 아래로 실행이 된다. → 이는 순서에 주의해서 코드를 작성해야하는 의미. (단, 호이스팅(Hoisting) 으로 인한 예외의 경우가 있다.)
: JS의 일반적인 용도는 웹 페이지에 기능을 더하여 HTML 페이지를 동적으로 만들어주는 것이다.
HTML 페이지 변경 및 HTML Element와 Content의 추가 혹은 제거
CSS 및 HTML Element의 스타일 변경
사용자와의 상호작용, 폼의 유효성 검증
마우스와 키보드 이벤트와 같은 다양한 이벤트에 대한 스크립트 실행
웹 브라우저 제어, 쿠키 등의 설정과 조회
AJAX 기술을 이용한 웹 서버와의 통신