Banner

My Tech Blog (JavaScript)

๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๐Ÿฆ๋ชฉํ‘œ์ด๋ฒคํŠธ, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ, ์ด๋ฒคํŠธ ๋ฒ„์Šค ๋ฐ 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 ..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'JavaScript' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ