๋ชฉ์ฐจ
DOM
Document Object Model์ ์ฝ์์ด๋ค
Document = HTML ์ ์ฒด ์ฝ๋
Object = HTML ํ๊ทธ
DOM์
๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์์ ๋ณ์์ ๋ฃ๊ณ
๋ณ์or๋ฉ์๋๋ฅผ ์ด์ฉํด
์ถ๊ฐ, ๋ณ๊ฒฝ, ์ญ์ ๋ฑ์ ์ ์ด๋ฅผ ํ๋ ๊ฒ์ ๋งํ๋ค.
(ํ์ค์์ฝ)
document๋ผ๋ ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง๊ณ ๊ทธ ์์ ์ฌ๋ฌ๊ฐ์ง ๊ฒ๋ค์ ์ ์ดํ๋ ๊ฒ
์น๋ธ๋ผ์ฐ์ ๋์ ๊ณผ์
| 1 |
HTMLํ์ผ ๊ฐ์ ธ์ค๊ธฐ
| 2 |
๊ฐ์ ธ์จ HTMLํ์ผ์ ํ์ฑํ์ฌ DOM tree ์์ฑ
(ํ๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋ถ์!)
CSS ์ ๋ณด ํ์ฑํ์ฌ CSSOM tree ์์ฑ
| 3 |
DOM/CSSOM tree๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Render tree ์์ฑ
| 4 |
Render tree๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋๋ง์ ํ๋ค.
์น๋ธ๋ผ์ฐ์ ๋์๊ณผ์ & JS
์ด๋ฒ์๋ JS๊ฐ ์ฒจ๊ฐ๋ ๊ฒฝ์ฐ์ ๋ํด์ ์์๋ณด์
์์ ๊ณผ์ ์ค์
<head>ํ๊ทธ ๋ด์ <script>๋ก JS์ฝ๋๋ฅผ ๋ฃ์ผ๋ฉด
DOMํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋ฉ์ถ๊ณ JS์์ง์ ์์ ๊ถ์ ๋๊ธด๋ค.
JS์์ง์ด javascript ์ฝ๋ ํ์ผ์ ๋ก๋ํด์ ์คํํ ๋ค
๋ค์ HTML๋ก ๋์ด์์ ํธ๋ฆฌ ๊ตฌ์ฑ ์์ ์ ์ฌ๊ฐํ๋ค.
์ฆ,
head ๋ด์ JS์ฝ๋๋ฅผ ๋ฃ๋ ๊ฒ์
ํ๋ฉด ๋ก๋ฉ์ ๋๋ฆฌ๊ฒ ํ ์ ์๊ณ
DOM tree ๊ตฌ์ฑ ์ ์ js๊ฐ ์คํ๋๋ฏ๋ก
์ ์ ์คํ์ด ๋์ง ์์ ์ ์๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ์
</body> ํ๊ทธ์ ๋ฐ๋ก ์ง์ ์
<script>ํ๊ทธ๋ฅผ ๋ฃ์ด์ฃผ๋ ๊ฒ์ด๋ค!!
BOM
Browser Object Model์ ์ฝ์์ด๋ค.
DOM์ด document๋ผ๋ ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง๊ณ
๊ทธ ์์ ์ฌ๋ฌ๊ฐ์ง ๊ฒ๋ค์ ์ ์ดํ ์ ์๋ ๊ฒ์ด๋ผ๋ฉด,
BOM์
window๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ฅผ
์ ์ดํ ์ ์๋ ๊ฐ์ฒด๋ค์ด ๋ง๋ค์ด์ง๋ ๊ฒ์ด๋ค.
window.(๊ฐ์ฒด)
ํ์ง๋ง window๋ฅผ ์๋ตํด๋ ๋๋ค.
์ฃผ์ ๊ฐ์ฒด
navigator
๋ธ๋ผ์ฐ์ ์ ์ด์์ฒด์ ์ ๋ณด๋ฅผ ์ ๊ณต
location
URL๊ด๋ จ์ ๋ค๋ฃฌ๋ค.
console.log(navigator.userAgent)
console.log(navigator.platform)
console.log(location.href)
>>>
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
Win32
chrome://new-tab-page/
//window.console.log(window.navigator.userAgent)
//window๋ฅผ ์๋ตํด๋ ๊ฐ์ ๊ฒฐ๊ณผ!
document
HTML/CSS๋ฅผ ์ ์ดํ ์ ์๋ค.
window.document.body.style.background = "blueviolet"
๋ฐฐ๊ฒฝ์์ ๋ฐ๊พผ ๋ชจ์ต์ด๋ค.
'๐ | WEB DEV > Vanilla JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS_๋ฌธ๋ฒ (9)_์ด๋ฒคํธ (0) | 2022.02.24 |
---|---|
JS_๋ฌธ๋ฒ (8)_DOM CRUD ํํค์น๊ธฐ (0) | 2022.02.24 |
JS_๋ฌธ๋ฒ (6)_promise ๋ฉ์๋(catch, finally, all, race ๋ฑ ) (0) | 2022.02.20 |
JS_๋ฌธ๋ฒ (5)_๋๊ธฐ/๋น๋๊ธฐ ์ฒ๋ฆฌ (0) | 2022.02.18 |
JS_๋ฌธ๋ฒ (4)_Scope (0) | 2022.02.17 |
๋๊ธ