๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŒŒ | WEB DEV/Vanilla JS44

JS_๋ฌธ๋ฒ• (10)_๋Œ€ํ™”์ฐฝ ๋Œ€ํ™”์ฐฝ์— ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! prompt() ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฌธ์ž์—ด ์ž…๋ ฅ์„ ๋ฐ›๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ด๋ฅผ parseInt()์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. prompt("๋Œ€ํ™”์ฐฝ ๋ฉ”์„ธ์ง€"); const num = prompt("์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”"); const num = parseInt(prompt("์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”")); alert() ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šฐ๋Š” ํ•จ์ˆ˜์ด๋‹ค. alert("๋Œ€ํ™”์ฐฝ ๋ฉ”์„ธ์ง€"); alert("Hello!"); confirm() ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ Y/N์„ ๋ฐ›๋Š” ํ•จ์ˆ˜์ด๋‹ค. confirm("๋Œ€ํ™”์ฐฝ ๋ฉ”์„ธ์ง€"); const yesNo = confirm(num+" ๋ช…์ด ๋งž์Šต๋‹ˆ๊นŒ?"); //script์˜ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 2022. 7. 26.
JS_๋ฌธ๋ฒ• (9)_์ด๋ฒคํŠธ ์›นํŽ˜์ด์ง€์— ์–ด๋– ํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๊ทธ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ์˜ˆ์ „์—๋Š” ํƒœ๊ทธ์— ์ง์ ‘ ์†์„ฑ์œผ๋กœ ์—๋ฒคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹๋„ ์žˆ์—ˆ์ง€๋งŒ, ์ตœ๊ทผ์—๋Š” JS๋ฅผ HTML๊ณผ ๋ถ„๋ฆฌํ•˜๊ธฐ์œ„ํ•ด์„œ addEventListener()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํ˜ธํ•œ๋‹ค. ์ด๋ฒคํŠธ ๋“ฑ๋ก ๋Œ€์ƒ ์š”์†Œ.addEvenListener(์ด๋ฒคํŠธ๋ช…, ๋ฆฌ์Šค๋„ˆํ•จ์ˆ˜(์ฝœ๋ฐฑํ•จ์ˆ˜)) ์ด๋ฒคํŠธ๋ช…์€ click, intput, focus, mousehover ๋“ฑ์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. ๋ฆฌ์Šค๋„ˆํ•จ์ˆ˜๋Š” ๋ง๊ทธ๋Œ€๋กœ 'ํ•จ์ˆ˜'๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ์ˆ˜ ์ž๋ฆฌ์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์ฃผ๊ฑฐ๋‚˜ ์ •์˜ํ•œ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ๋„ฃ์–ด์ค€๋‹ค. (ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ์•„๋‹Œ "ํ•จ์ˆ˜๋ช…()"์˜ ํ˜•ํƒœ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฐ˜ํ™˜๊ฐ’์ด ๋“ค์–ด๊ฐ€๋ฏ€๋กœ ์ •์ƒ์ž‘๋™X) ์ด๋ฒคํŠธ ์‚ญ์ œ ๋Œ€์ƒ ์š”์†Œ.removeEvenListen.. 2022. 2. 24.
JS_๋ฌธ๋ฒ• (8)_DOM CRUD ํŒŒํ—ค์น˜๊ธฐ Create Read Update Delete HTML ์ฐพ๊ธฐ - doucument.getElementById(id๋ช…) : id๋กœ ์ฐพ๊ธฐ - doucument.getElementsByTagName(ํƒœ๊ทธ๋ช…) : ํƒœ๊ทธ๋กœ ์ฐพ๊ธฐ(๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜) - doucument.getElementsByClassName(ํด๋ž˜์Šค๋ช…) : ํด๋ž˜์Šค๋กœ ์ฐพ๊ธฐ(๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜) - document.querySelector(css ์„ ํƒ์ž) : css ์„ ํƒ์ž๋กœ ์ฐพ๊ธฐ(์ตœ์ดˆ๋“ฑ์žฅ ํ•˜๋‚˜๋งŒ ๋ฐ˜ํ™˜) - document.querySelectorAll(css ์„ ํƒ์ž) : css ์„ ํƒ์ž๋กœ ์ฐพ๊ธฐ(๋ชจ๋“  ์š”์†Œ. ๋ฐฐ์—ด ํ˜•ํƒœ์˜ ๊ฐ์ฒด(์œ ์‚ฌ๋ฐฐ์—ด)๋กœ ๋ฐ˜ํ™˜) (์ธ์ˆ˜๋กœ css ์„ ํƒ์ž๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ' . '(class), ' # '(id), ' * '(all), (tag๋Š” prefix.. 2022. 2. 24.
JS_๋ฌธ๋ฒ• (7)_DOM / BOM 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๊ฐ€ ์ฒจ๊ฐ€๋œ ๊ฒฝ์šฐ.. 2022. 2. 23.
JS_๋ฌธ๋ฒ• (6)_promise ๋ฉ”์„œ๋“œ(catch, finally, all, race ๋“ฑ ) catch ๋ฉ”์„œ๋“œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ˆ์™ธ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋งŒ์•ฝ failCallback์ด ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์„ ๋•Œ์—๋Š” reject ์‹œ์— catch ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋œ๋‹ค. (์˜ˆ์™ธ์ƒํ™ฉ์œผ๋กœ ์ธ์‹) const func = new Promise( (resolve, reject) => { //์„ฑ๊ณต, ์‹คํŒจ ํ•จ์ˆ˜์ธ์ˆ˜๋กœ ๋ฐ›๊ธฐ setTimeout(() => { //๋น„๋™๊ธฐ ํ•จ์ˆ˜ ์‹คํ–‰ let num = 10 if (num > 11) { resolve(num)//successCallback } else { reject("error")//failCallback } }, 1000); } ) func .then((item) => { //successCallback console.log('success', item) }) .catch((err) =>.. 2022. 2. 20.
JS_๋ฌธ๋ฒ• (5)_๋™๊ธฐ/๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋™๊ธฐ์  ์ฒ˜๋ฆฌ ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„, ํ•ด๋‹น ์š”์ฒญ์— ์‘๋‹ต ๋ฐ›์•„ ๋‹ค์Œ ๋™์ž‘ ์‹คํ–‰ (ํ•œ ์ค„ ์™„๋ฃŒ ํ›„ ๋‹ค์Œ ์ค„ ์ฒ˜๋ฆฌ) ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์š”์ฒญ ๋ณด๋‚ธ ํ›„, ์‘๋‹ต์— ์ƒ๊ด€์—†์ด ๋‹ค์Œ๋™์ž‘ ์‹คํ–‰ (ํ•œ ์ค„ ์™„๋ฃŒ ์ƒ๊ด€์—†์ด ๋‹ค์Œ ์ค„ ์ฒ˜๋ฆฌ) ๋น„๋™๊ธฐ์  ์ฒ˜๋ฆฌ? ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด๋Š” ๋™๊ธฐ์  ์ฒ˜๋ฆฌ๋ฅผ ์ง€ํ–ฅํ•œ๋‹ค. JS์˜ ๊ฒฝ์šฐ์—๋Š” ์‹คํ–‰์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด ๊ธฐ๋‹ค๋ฆด ํ•„์š”์—†์ด ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐ€๋„๋ก ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜์–ด ์žˆ๋‹ค. ์ •๋ฆฌํ•˜๋ฉด JS๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™๊ธฐ์  ์ฒ˜๋ฆฌ ์ผ๋ถ€ ๊ธฐ๋Šฅ ๋น„๋™๊ธฐ์  ์ฒ˜๋ฆฌ ์ถ”๊ฐ€ ์ œ๊ณต ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์ง€์› ๊ธฐ๋Šฅ Rest API ์š”์ฒญ ํŒŒ์ผ / DB ์ฒ˜๋ฆฌ ํƒ€์ด๋จธ, ์•”ํ˜ธํ™” / ๋ณตํ˜ธํ™” ๋น„๋™๊ธฐ ์˜ˆ์‹œ setTimeout ํ•จ์ˆ˜ setTimeout(functoin, milliseconds) - millisecons : ms ๋งŒํผ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ - function : ms๋งŒํผ .. 2022. 2. 18.
JS_๋ฌธ๋ฒ• (4)_Scope JS์˜ Scope์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! 3๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ์ „์—ญ (Global) scope : ์ฝ”๋“œ ์ „์ฒด ๋ฒ”์œ„ 2. ํ•จ์ˆ˜ (Function) scope : ํ•จ์ˆ˜ ๋‚ด์—์„œ์˜ ๋ฒ”์œ„ 3. ๋ธ”๋ก (Block) scope : { } ์ค‘๊ด„ํ˜ธ๋กœ ์ด๋ค„์ง„ ๋ธ”๋ก ๋‚ด์—์„œ์˜ ๋ฒ”์œ„ ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ๋ธ”๋ก scope๊ฐ€ ์žˆ๋‹ค! ์ „์—ญ scope ์™ธ๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜orํ•จ์ˆ˜ ๋ชจ๋“  ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋•Œ ๋ธ”๋ก๊นŒ์ง€๋„ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. let a = 1; { console.log(a) } console.log(a) >>> 1 //๋ธ”๋ก ์•ˆ์—์„œ ์ถœ๋ ฅ 1 //๋ธ”๋ก ๋ฐ–์—์„œ ์ถœ๋ ฅ ์ „์—ญ๋ณ€์ˆ˜๋Š” ๋ธ”๋ก ์•ˆ์˜ ๋ธ”๋ก๊นŒ์ง€๋„ ์ ์šฉ์ด ๋œ๋‹ค. let a = 1; { let b = 2; console.log(a) { console.log(a.. 2022. 2. 17.
JS_๋ฌธ๋ฒ• (3)_ํ˜ธ์ด์ŠคํŒ… ํ˜ธ์ด์ŠคํŒ… ์ด์Šˆ Hoisting = ๋Œ์–ด์˜ฌ๋ฆฐ๋‹ค ์ผ๋ฐ˜์ ์ธ ์–ธ์–ด = ํ•จ์ˆ˜, ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ ํ›„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ JS = ์„ ์–ธ ์ „์— ์‚ฌ์šฉ์„ ํ•ด๋„ ์—๋Ÿฌ๋ฅผ ๋‚ด์ง€ ์•Š๋Š”๋‹ค...! ์˜ˆ์‹œ 1. var ํ‚ค์›Œ๋“œ var์€ let๊ณผ ๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ์— ์“ฐ์ด๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ์žฌ์„ ์–ธํ•ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค. var a = 1; var a = 2; console.log(a) >>> 2 ====================== let a = 1; let a = 2; console.log(a) >>> SyntaxError: Identifier 'a' has already been declared ํ˜ธ์ด์ŠคํŒ…์ด ์ผ์–ด๋‚˜๋Š” ์˜ˆ์‹œ console.log(a) a = 10; console.log(a) var a = 1 console... 2022. 2. 16.
JS_๋ฌธ๋ฒ• (2)_๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น2, Rest-Spread ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜ ๊ฐ’ ๊ตํ™˜ํ•˜๊ธฐ let a = 1; let b = 2; [a, b] = [b, a] //๋Œ€๊ด„ํ˜ธ๋กœ ํ•ด์•ผ ๊ฐ€๋Šฅ console.log(a, b) >>> 2 1 ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด์„œ ๊ตํ™˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„๊ฒฐํ•˜๋‹ค. ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐ’ ํ• ๋‹น let a = 1; let b = 2; [a, b] = [3, 4] console.log(a, b) >>> 3 4 ํŒŒ์ด์ฌ์˜ ํŠœํ”Œ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ์œ„์ฒ˜๋Ÿผ ์จ์ฃผ๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค. function data(){ return [1, 2] } let [a,b] = data() console.log(a, b) >>> 1 2 ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์„ ๋ฐฐ์—ด๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ๋„ ์—ฌ๋Ÿฌ ๊ฐ’์„ ํ• ๋‹น์‹œํ‚ค๋Š” ๋ฐ์— ์ด์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌธ์ž์—ด ๋ถ„๋ฆฌ ํŒŒ์ด์ฌ์—๋„ ์žˆ๋Š” .split() ํ•จ์ˆ˜! let data = 'Hello my.. 2022. 2. 15.