| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- database
- parser
- defaultdict
- ReactNative
- folium
- DFS
- BFS
- PYTHON
- flexbox
- 보안솔루션
- db
- SQLD
- javascript
- sql
- 파일시스템
- Graph
- 베이직
- pandas
- CSS
- display
- 이벤트처리
- 코딩테스트
- reactnavigation
- 가상메모리
- 단위테스트
- 챌린지
- 부스트캠프
- 프로그래밍패러다임
- 함수형프로그래밍
- OOP
- Today
- Total
DevLog
[JS] 자바스크립트 전역 변수, window 객체와 document 객체 본문
전역변수
코드 내에서 항상 사용할 수 있는 변수.
브라우저가 자바스크립트 코드로 제공해주는 대표적인 built-in 전역변수로 window와 document 변수가 있다.
window
객체를 포함하고 있는, 전역적으로 사용 가능한 변수.
활성화된 브라우저 윈도우(탭)와 관련된 정보와 기능, 이벤트 정보 등이 저장되어 있다.
웹사이트에서 코드를 실행할 때 윈도우 객체를 사용하면 '현재 열려 있는' 웹사이트 브라우저 탭에 액세스하고, 관련 정보를 가져올 수 있다. 무슨 값이 들어있는지는 객체 자체를 콘솔에 찍어보면 확인 가능 (`console.log(window);`)
윈도우 객체에 내장되어있는 모든 속성과 메소드는 실제 브라우저에서 전역변수나 함수로 사용할 수 있다.
→ `window.` 으로 접근하지 않아도 액세스 가능. (브라우저에서 중요한 역할을 하는 윈도우 객체를 위한 예외사항!)
ex) `alert();` 와 `window.alert()`는 같은 함수를 호출한다.
document
윈도우 객체 내부에 존재하는 document 속성.
다른 객체 안의 객체이기 때문에 "중첩 객체" 라고 불린다.
저장된 웹사이트 콘텐츠와 관련된 함수와 정보들이 포함되어 있으며, 이 document 객체를 통해 HTML 요소에 접근하고 내용을 분석할 수 있다.
쉽게 말해 document 객체 = HTML 코드를 표준 자바스크립트 객체로 번역한 것
웹사이트의 정보와 관련된 수많은 속성과 메소드를 담고 있으며, 개중에는 HTML 코드를 분석하여 만든 `head` 속성과 `body` 속성도 포함된다. HTML 코드를 자바스크립트 객체 코드로 변환시킨 것을 DOM(Document Object Model)이라고 하며, DOM은 중첩 객체로써 웹페이지의 구조를 설명한다.
자바스크립트는 document 객체를 통해서 DOM에 접근, 상호작용이 가능하며 이를 통해 HTML 코드를 직접 건드리지 않고도 브라우저 화면 상에 보여지는 HTML 내부 요소에 대한 삽입/삭제/수정이 가능하게 되는 것이다.
document에 저장된 객체 정보는 `console.dir(document)` 로 출력해볼 수 있다.
'프로그래밍 언어 > Javascript | Typescript' 카테고리의 다른 글
| [JS] 자바스크립트 반복문 for...in과 for...of (0) | 2023.09.24 |
|---|---|
| [JS] 함수 선언문 vs. 함수 표현식 :: 자바스크립트 함수 선언과 화살표 함수(arrow function) (0) | 2023.09.24 |
| [JS] 자바스크립트 타입 변환, Truthy와 Falsy (0) | 2023.09.21 |
| [JS] 배열 메소드(Array Methods) :: slice(), splice()로 배열 자르기, concat()으로 배열 복사하기 (0) | 2023.07.26 |
| [JS] 배열(Array)과 기본 배열 메소드(Array methods) :: push(), pop(), unshift(), shift() (0) | 2023.07.18 |