๋ด๊ฐ ๋ณด๋ ค๊ณ ๋ง๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๐ฆ๋ชฉํ์ด๋ฒคํธ, ์ด๋ฒคํธ ํธ๋ค๋ฌ, ์ด๋ฒคํธ ๋ฒ์ค ๋ฐ addEventListener์ ๋ํด ์์๋ณด์.๊ทธ๋ฆฌ๊ณ jQuery์ Vanilla JavaScript์์ ์ด๋ฒคํธ๋ฅผ ๋ค๋ฃจ๋ ๋ฒ์ ๋ํด ์์๋ณด์. ๋ค์ ํ ๋ฒ ๋งํ์ง๋ง jQuery๋ ํ๋ ์น ๊ฐ๋ฐ์์ ํ์์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ง๋ง, ์ด์ ๋ Vanilla JavaScript(์์ JS)๋ React, Vue, Svelte ๊ฐ์ ํ๋ ์์ํฌ๊ฐ ๋์ฒดํ๋ฉด์ ์ฌ์ฉ์ด ์ค์ด๋ค๊ณ ์๋ค. ๊ทธ๋์ addEventListener ์์ฃผ๋ก๋ง ์ ๋ฆฌํ๊ณ ์์ํ๊ฒ ์ด๋ฒคํธ ์ข
๋ฅ๋ง ๊ถ๊ธํ ์ฌ๋์ 6๋ฒ๋ถํฐ ์ฝ์ผ๋ฉด ๋๋ค. 1. ์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ฒคํธ (JavaScript Event)์ด๋ฒคํธ(Event)๋ ์ฌ์ฉ์๋ ์์คํ
์ด ์น ํ์ด์ง์์ ์ผ์ผํค๋ ๋์์ด๋ค.์๋ฅผ ๋ค์ด, ๋ฒํผ ํด..
โญ ๋ฌธ์๊ฐ ๋ก๋๋ ํ ์คํํ์โญ jQuery ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋จผ์ ๋ก๋ํ์โญ $ ์ถฉ๋ ๋ฐฉ์ง ํ์ ์ noConflict โญ ์ด๋ฒคํธ ์ค๋ณต ๋ฐฉ์ง off()โญ AJAX ์บ์ฑ ๋ฐฉ์ง (cache: false) โญ ๋์ ์์์ ์ด๋ฒคํธ ์ ์ฉ on()โญ ์ฑ๋ฅ ์ต์ ํ (map(), .append() ์ต์ํ) 1. ๋ฌธ์๊ฐ ์์ ํ ๋ก๋๋ ํ ์คํํ๊ธฐ์ ํ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ฌธ์ ๊ฐ์ฒด๋ฅผ ๋จผ์ ๋ถ๋ฌ์์ผ ํ๋ค. ๊ทธ๋์ HTML์ด ๋ก๋๋๊ธฐ ์ ์ jQuery ์ฝ๋๊ฐ ์คํ๋๋ฉด ์์๋ฅผ ์ฐพ์ ์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.๐ ํด๊ฒฐ์ฑ
: $(document).ready() ์ฌ์ฉ ๋๋ ๋ณ๊ฒฝ๋ ํ
์คํธ โญ [๋ฐฉ๋ฒ 2] $(document).ready() ์ฌ์ฉ ๋ณ๊ฒฝ๋ ํ
์คํธ$(document).ready()๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์๊ฐ ์์ ํ ..
1. Object (๊ฐ์ฒด) 2. DOM (Document Object Model)2-1. DOM(๋ฌธ์๊ฐ์ฒด๋ชจ๋ธ) ๋ฌธ์๊ฐ์ฒด๋ชจ๋ธ(DOM) HTML CSS JS 2-2. innerHTML vs textContent ์ค๋์ ๋ฌธ์๊ฐ์ฒด๋ชจ๋ธ์ ๋ํด์ ๋ฐฐ์๋ณด์๋ค 2-3. querySelector vs getElementByID์์ฆ์๋ ์ด์ฐจํผ ๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐ์ง๋ง DOM ํ์ฉํด๋ณด๊ธฐ h1ํ๊ทธ ๋ด์ฉ ๋ณ๊ฒฝ a ํ๊ทธ ์์ฑ ulํ๊ทธ ์์ฑ 2-4. addEventListener ๋๋ฒํผ์ด์ง๋กฑ 2-5. ์์ 1_counting 0 ์ฆ๊ฐ ๊ฐ์ 2-6. ์์ 2_๋ฐ๋ณต๋ฌธ ์ถ๋ ฅ..
// JSON ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ ์ํ JS ์ฌ์ฉ๋ฒ// [1] : ๋ฐ์ดํฐ const person = [ `{"name":"์ด์์ ","age":20,"nationality":"๋ํ๋ฏผ๊ตญ"}`, {"name":"๋งฅ์๋","age":30,"nationality":"๋ฏธ๊ตญ"}, {"name":"์๋ฆฌ์๋ฒ ์ค","age":40,"nationality":"์๊ตญ"}, {"name":"์๋ค๋ฅดํฌ","age":50,"nationality":"ํ๋์ค"},]; console.log(typeof person); // objectconsole.log(typeof person[0]); // stringconsole.log(typeof person[1]); // object ์ฒซ๋ฒ์งธ ์์๋ฅผ ์์ ๋ฐ์ดํ๋ก ๊ฐ์ธ๋ฉด string ..
JSON๊ณผ XML์ ๋ฐ์ดํฐ๋ฅผ ํํํ๊ณ ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ ๊ฐ์ง ํ์์ด๋ค.1. XMLXML์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ๋ฌํ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก์ผ๋ฉฐ, ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ ํ๊ธฐ ์ํ ์ธ์ด์ด๋ฉฐ EXtensible Markup Language์ ์ฝ์์ด๋ค. - XML์ ๋ค๋ฅธ ๋ชฉ์ ์ ๋งํฌ์
์ธ์ด๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ค๋ชฉ์ ๋งํฌ์
์ธ์ด- XML์ ๋ค๋ฅธ ์์คํ
๋ผ๋ฆฌ ๋ค์ํ ์ข
๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ์์ฝ๊ฒ ๊ตํํ ์ ์๋๋ก ํด์ค๋ค.- XML์ ์๋ก์ด ํ๊ทธ๋ฅผ ๋ง๋ค์ด ์ถ๊ฐํด๋ ๊ณ์ํด์ ๋์ํ๋ฏ๋ก, ํ์ฅ์ฑ์ด ์ข๋ค. - XML์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ์ง ์๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ ์ ์ฅํ๋ ๊ฒ๋ง์ ๋ชฉ์ ์ผ๋ก ํ๋ค.- XML์ ํ
์คํธ ๋ฐ์ดํฐ ํ์์ ์ธ์ด๋ก ๋ชจ๋ XML ๋ฌธ์๋ ์ ๋์ฝ๋ ๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง๋ค.XML ๊ธฐ๋ฐ์ ์ธ์ด XHTML, SVG,..
๋ธ๋ผ์ฐ์ ์์์ ๋์ํ๋ ์น์ฌ์ดํธ๋ ์น ์ดํ๋ฆฌ์ผ์ด์
๊ณผ ๊ฐ์ Client๋ค์ด ์ด๋ป๊ฒ Server์ ํต์ ํ ์ ์์๊น? 1. HTTP(Hypertext Transfer Protocal)Client ์ Server ์ด ์ด๋ป๊ฒ Hypertext๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ ์ง ๊ท์ฝํ ํ๋กํ ์ฝClient๊ฐ Server์๊ฒ ๋ฐ์ดํฐ๋ฅผ requestํ๋ฉด, Server๋ ๊ทธ์ ๋ง๋ response๋ฅผ Client๋ก ๋ณด๋ 2. AJAX(Asynchronous JavaScript And XML)์นํ์ด์ง์์ ๋์ ์ผ๋ก ์๋ฒ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ธฐ์ ๋ํ์ ์ธ ์๋ก๋ ๋ธ๋ผ์ฐ์ API์์ ์ ๊ณตํ๋ XMLHttpRequest(XHR) ์ค๋ธ์ ํธ๊ฐ ์๋ค.ํน์ fecth() API๋ก ๊ฐํธํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค. 3. XMLhtm..
์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๊ฐ๋จํ ํฌ์คํ
ํ๋ ค๊ณ ์ฌํํ To Do List๋ฅผ ๋ง๋ค์ด ๋ณด์๋ค! 1. ๊ตฌ๊ธํฐํธ, ์คํ์ผ์ํธ, ์๋ฐ์คํฌ๋ฆฝํธ ์ฐ๊ฒฐ- `style.css`์ `script.js` ์ฐ๊ฒฐ- ๊ตฌ๊ธ ํฐํธ `Poppins` ์ฌ์ฉํ๊ธฐ ์ํด์ Embed Code๋ฅผ 2. ์ ์ฒด ์ ์ฉ๋ css ์ค์ & container์ ๋ฐฐ๊ฒฝ ์ถ๊ฐโก ํฐํธ๋ ๊ตฌ๊ธ ํฐํธ `Poppins` ๋ก ์ค์ โก `box-sizing: border-box;`์์์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ๋ `ํจ๋ฉ(padding)`๊ณผ `ํ
๋๋ฆฌ(border)`๊น์ง ํฌํจํ๋๋ก ์ค์ ํ๋ ์์ฑ. ๊ธฐ๋ณธ์ ์ผ๋ก CSS์์ box-sizing์ ๊ธฐ๋ณธ๊ฐ์ `content-box`์ด๋ค. `content-box`๋ ์์์ `width`์ `height`๊ฐ ์ฝํ
์ธ ์์ญ..
๐ JavaScript ๐ฅ๏ธ String ๊ฐ์ฒด์ค๋์ ์ ๋ฒ ํฌ์คํ
์ ์ด์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ๊ฐ์ฒด(String Object)์ ๋ฉ์๋์ ์์ฑ์ ๋ํด ์์๋ณผ๊ฒ์. ์ฃผ์ํ ์ ! ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ์ธ๋ฑ์ค๊ฐ์ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ ๋๊ฐ ์๋๋ฐ์ธ๋ฑ์ค๊ฐ์ 0๋ถํฐ ์์ํ๋ฉฐ, ๋์ด์ฐ๊ธฐ ํฌํจ์
๋๋ค. โโ
1. String ๊ฐ์ฒด์ ๋ฉ์๋ ๋ฐ ์์ฑ ํ ๋์ ๋ณด๊ธฐ 2โ์ข
๋ฅ๊ธฐ๋ฅsplit("๋ฌธ์")์ง์ ํ ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋๋์ด ๋ฐฐ์ด์ ์ ์ฅํ์ฌ ๋ฐํlet str = "amazingkwebkstudy";str.split("k"); // ๋ฐฐ์ด ํ์์ผ๋ก ๋ฐํarr = ["amazing", "web", "study"]toLowerCase()๋ฌธ์์ด์์ ์๋ฌธ ๋๋ฌธ์๋ฅผ ๋ชจ๋ ์๋ฌธ์๋ก ๋ณํlet str = "Amazing Web ..