๐ป Programming/JS, TS
DOM ์์์ ์คํ์ผ ๋ณ๊ฒฝ 1) className Product Name 60/60 Submit input.warning { background-color: rgb(248, 191, 145); } #remaining-chars.warning { color:rgb(211, 109, 26); } const spanElement = document.getElementById('remaining-chars'); spanElement.className = 'warning'; element.className('some-class')๋ก ํด๋น ์์์ ํด๋์ค๋ช
์ ์ถ๊ฐํ ์ ์๋ค. className์ผ๋ก css ํด๋์ค ์ถ๊ฐํ ๋์ ๋จ์ : ์ด๋ฏธ ํด๋์ค๋ฅผ ๊ฐ์ง๊ณ ์๋ ์์์ ๊ฒฝ์ฐ, ํด๋น ํด๋์ค๊ฐ ์๋ก์ด ํด๋์ค๋ก ๋ฎ์ด์์ด์ง๋ค...
๐ป Programming/JS, TS
Event ์ ์ ๊ฐ ์ฌ์ดํธ์ ํน์ ๋ถ๋ถ์ ์
๋ ฅ, ํด๋ฆญ, ์คํฌ๋กค ํ๋ ๋ฑ์ ํ๋์ ์๋ฏธํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฒคํธ๋ฅผ ํ์งํ์ฌ ํน์ ์ฝ๋๋ฅผ ์คํํ๋๋ก ํ ์ ์๋ค. ์น์ ๊ฒฝ์ฐ ์ด๋ฒคํธ๋ ๋ธ๋ผ์ฐ์ ์๋์ฐ ๋ด์์ ๋ฐ์๋๋๋ฐ, ๋ค์์ ๊ฐ์ ๋ค์ํ ์ด๋ฒคํธ ํ์
๋ค์ด ์๋ค. ์ ์ ๊ฐ ์ด๋ค ์์๋ฅผ ์ ํํ๊ฑฐ๋ ์ด๋ค ์์ ์์ ์ปค์๋ฅผ ์ฌ๋ ค๋๋ค(hover). ์ ์ ๊ฐ ํค๋ณด๋์์ ํค๋ฅผ ์ ํํ๋ค. ์ ์ ๊ฐ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ํฌ๊ธฐ๋ฅผ ์ฌ์กฐ์ ํ๊ฑฐ๋ ๋ซ๋๋ค. ์น ํ์ด์ง๊ฐ ๋ก๋ฉ์ ์๋ฃํ๋ค. ์์(form)์ด ์ ์ถ๋์๋ค. ๋น๋์ค๊ฐ ์ฌ์๋๊ฑฐ๋, ๋ฉ์ถ๊ฑฐ๋, ํน์ ๋๋ฌ๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฒคํธ๋ฆฌ์ค๋์ ์ฝ๋ฐฑํจ์ let paragraphElement = document.body.firstElementChild; function changeParag..
๐ป Programming/JS, TS
์ ์ญ window & document ๊ฐ์ฒด Built-in Variables & Functions ์ ์ญ ๋ณ์๋ก ์ฝ๋ ๋ด์์ ํญ์ ์ฌ์ฉํ ์ ์๋ ๋ณ์ window ๊ฐ์ฒด ์ ์ญ ๊ฐ์ฒด window ์ ์ญ ๊ฐ์ฒด๋ ์น ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ์ ์ญ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ํ๋ธ๋ค. ๋ชจ๋ ์ ์ญ ๋ณ์์ ํจ์๋ ์ค์ ๋ก ์ด window ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ์กด์ฌํ๋ค. window ๊ฐ์ฒด์ ํ๋กํผํฐ์ ๋ฉ์๋. ํจ์ ๊ธฐํธ f๊ฐ ํ์๋ ๊ฒ์ด ๋ฉ์๋์ด๊ณ ๊ทธ๋ ์ง ์์ ๊ฒ์ ํ๋กํผํฐ์ด๋ค. window ๊ฐ์ฒด์ ๋ด์ฅ๋ ํ๋กํผํฐ์ ๋ฉ์๋๋ค์ window. ์์ด๋ ์ก์ธ์คํ ์ ์๋ค. alert ๋ฉ์๋์ ๊ฒฝ์ฐ window.alert()๋ก๋ ์ฌ์ฉํ ์ ์์ง๋ง ๊ทธ๋ฅ alert()์ผ๋ก๋ ์คํํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ง์ด๋ค. ์๋์ฐ์ ๋ธ๋ผ์ฐ์ ํญ ์๋์ฐ๋ ์น ๋ธ๋ผ์ฐ..
๐ป Programming/JS, TS
๋งจ๋ ์ฐ๋ฉด์๋ ์ด๋ฆ์ด ๋น์ทํด์ ๊ทธ๋ฐ๊ฐ ์ ์ธ ๋ฉ์๋๊ฐ ์ ๋ฆฌ๊ฐ ์๋๊ณ ํท๊ฐ๋ ค์ ์ด ์ฐธ์ ํ๋ฒ ์์ํ๊ฒ ์ ๋ฆฌํด๋ณด์~! 1. slice Array.prototype.slice() ๋๋ String.prototype.slice() `slice()` ๋ฉ์๋๋ ๋ฌธ์์ด ๋๋ ๋ฐฐ์ด์์ ํน์ ๋ฒ์์ ์์๋ค์ ๋ณต์ฌํ์ฌ ์๋ก์ด ๋ฌธ์์ด ๋๋ ๋ฐฐ์ด์ ๋ฐํํ๋ค. Array // ์์ ์ถ์ฒ: MDN web docs - Array.prototype.slice() const animals = ['ant', 'bison', 'camel', 'duck', 'elephant']; console.log(animals.slice(2)); // Expected output: Array ["camel", "duck", "elephant"] con..
๐ป Programming/JS, TS
map์ React.js์์๋ ์ฃผ๋ก ๋ฐฐ์ด๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ค ๋ ๋ง์ด ์ฌ์ฉํ์๋๋ฐ, ํ์
์คํฌ๋ฆฝํธ์์ ์ฌ์ฉ๋ฒ์ด ์กฐ๊ธ ํน์ดํ ๊ฒ ๊ฐ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. 1. Map์ด๋? ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์
์คํฌ๋ฆฝํธ์์ ์ ๊ณต๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค ํ๋๋ก, Key์ Value์ ์์ ์ ์ฅํ๋ ์ปฌ๋ ์
์ด๋ค. ์ด ์ปฌ๋ ์
์ ๊ฐ์ ๋ํ ๊ณ ์ ํ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. 2. Map์ ํน์ง 1) ๊ณ ์ ํ key๊ฐ `Map`์ key-value ์์ ์ ์ฅํ๋๋ฐ, ๊ฐ key๋ ์ค๋ณต๋ ์ ์์ผ๋ฉฐ uniqueํ ๊ณ ์ ๊ฐ์ด์ด์ผ ํ๋ค. key๊ฐ ์ค๋ณต๋ ๊ฒฝ์ฐ, ๊ฐ์ฅ ๋ง์ง๋ง value๊ฐ ์ ์ฅ๋๋ค. 2) key-value ์์ผ๋ก ์ ์ฅ ๊ฐ ํญ๋ชฉ์ key-value์ ์์ผ๋ก ์ ์ฅํ์ฌ, key๊ฐ์ ์ฌ์ฉํ์ฌ ํด๋น key์ ์ฐ..
๐ป Programming/JS, TS
๋๋ ๊ฐ์ธ์ ์ผ๋ก ํฌ๋ฆฌ์ค๋ง์ค์ ๋ถ์๊ธฐ์ ๋ฌด๋๋ฅผ ๋งค์ฐ ๋งค์ฐ ์ข์ํ๋ ์ฌ๋์ด๋ค. ์์ง ํ์ฌ๋ฆ๋ ์ฑ ์ค์ง ์์์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ์ฌํด ํฌ๋ฆฌ์ค๋ง์ค๊น์ง ๋จ์ ์๊ฐ์ ๊ณ์ฐํด ๋ณด์! 1. JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋ฆฌ์ค๋ง์ค๊น์ง ๋จ์ ์๊ฐ ๊ณ์ฐํ๊ธฐ ๋จผ์ HTML์ ๊ฐ๋จํ๊ฒ ์์ฑํ๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์์ฑํด๋ดค์! ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ธ๋ญ ๋ด์ ์์ ๋จ๊ณ๋ฅผ ์ฃผ์์ผ๋ก ์ ์ด๋์๊ณ , ์์ธํ ์ค๋ช
์ ์ฝ๋๋ธ๋ญ ํ๋จ์์ ํ์ด์ ์ ์ด๋ณด๋ ค๊ณ ํ๋ค. Santa is coming! // 1) ์๊ฐ์ ํ์ํ HTML ์์ ์ง์ const countdownClock = document.querySelector(".countdown"); // 2) ํจ์ ์์ฑํ๊ธฐ const waitingXmas = () => { // (1) ์ค๋ ..
๐ป Programming/JS, TS
1. ๋ณ์๋? 1) ์ ์ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์์ฒด ๋๋ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ฐ์ดํฐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ , ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฐ์ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด ์ฌ์ฉ ์๋ณ์: ๋ณ์์ ์ด๋ฆ์ '์๋ณ์(identifier)'๋ผ๊ณ ๋ ํ๋๋ฐ, ์๋ณ์๋ ๊ฐ ์์ฒด๊ฐ ์๋ ๊ฐ์ ์ ์ฅํ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ธฐ์ตํ๋ค. ์๋ณ์๋ ๋ณ์๋ช
์ ๊ตญํ๋ ๊ฐ๋
์ด ์๋๊ณ , ๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ ์ด๋ฆ์ ๋ชจ๋ ์๋ณ์๋ผ๊ณ ํ ์ ์๋ค. 2) ๋ณ์์ ์์ฑ 3๋จ๊ณ - ์ ์ธ, ์ด๊ธฐํ, ํ ๋น (1) ๋ณ์ ์ ์ธ ๋ณ์ ์ ์ธ์ด๋ ๋ณ์๋ฅผ ์์ฑํ๋ ๊ฒ, ์ฆ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ๋ณ์๋ช
๊ณผ ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์๋ฅผ ์ฐ๊ฒฐํด์ ๊ฐ์ ์ ์ฅํ ์ ์๋๋ก ์ค๋นํ๋ ๊ฒ์ ๋งํ๋ค. ๋ณ์๋ฅผ ์ ์ธ..