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

js47

JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (21)_ ์ผ๊ธ‰ ๊ฐ์ฒด JS์˜ ์ผ๊ธ‰ ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! ์ผ๊ธ‰ ๊ฐ์ฒด (First Class Object) ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜์˜ ๊ฐ’์ฒ˜๋Ÿผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด์— ์กด์žฌํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. JS์˜ ํ•จ์ˆ˜๋„ ์ด์— ์†ํ•œ๋‹ค. (JS์˜ ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค.) ํŠน์ง• 1. ์ƒ์ˆ˜/๋ณ€์ˆ˜์— ํ• ๋‹น๋  ์ˆ˜ ์žˆ๋‹ค. 2. ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋‹ค. 3. ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ์„œ ๋ฐ˜ํ™˜๋  ์ˆ˜ ์žˆ๋‹ค. 1. ํ• ๋‹น ๋ณ€์ˆ˜/์ƒ์ˆ˜์— ํ•จ์ˆ˜๋ช…์„ ์‹๋ณ„์ž๋กœ ๋„ฃ์–ด์„œ ํ• ๋‹น์‹œํ‚จ๋‹ค. ์ด๋•Œ ์ฃผ์˜ํ•  ์ ์€ ๊ด„ํ˜ธ๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. (๊ด„ํ˜ธ๋ฅผ ๋ถ™์ด๋ฉด ํ•จ์ˆ˜ ์‹คํ–‰ ํ›„ ๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ) ์˜ˆ์‹œ 1) function isOdd (num) { console.log( (num % 2 ? 'ํ™€' : '์ง') + '์ˆ˜' ); return num % 2 ? true : false; }; .. 2023. 3. 11.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (20)_ for ๋ฃจํ”„+ 2022.02.11 - [๐ŸŒŒ | WEB DEV/Vanilla JS] - JS_๊ธฐ๋ณธ๋ฌธ๋ฒ• (4)_๋ฐ˜๋ณต๋ฌธ ๋ฐ˜๋ณต๋ฌธ ์ค‘ for ๋ฌธ์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ ๋” ์•Œ์•„๋ณด์ž ๊ตฌ์กฐ for ([initialization]; [condition]; [final-expression]){ ... } ๊ด„ํ˜ธ ์•ˆ 3๊ฐœ์˜ ์‹ initialization ์‹ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค. ์ฃผ๋กœ ์นด์šดํ„ฐ์— ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. (์ƒ์ˆ˜ ์„ ์–ธ ์‹œ ์ฆ๊ฐ ๋ถˆ๊ฐ€) condition ๋งค ๋ฐ˜๋ณต ๋งˆ๋‹ค ํ‰๊ฐ€ํ•  ์กฐ๊ฑด์„ ์„ธ์šด๋‹ค. ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๊ฒฝ์šฐ ์ˆ˜ํ–‰๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค. ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ for๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค. ๋งŒ์•ฝ ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ ํ•ญ์ƒ ์ฐธ์ด๋‹ค. final-expression ๋งค ๋ฐ˜๋ณต์˜ ๋์— ์ˆ˜ํ–‰๋˜๋Š” ์‹์ด๋‹ค. ์ฃผ๋กœ ์นด์šดํ„ฐ ๋ณ€์ˆ˜์˜ ์ฆ๊ฐ์— ์‚ฌ์šฉ๋œ๋‹ค. (condition ์ด์ „์— ์‹คํ–‰) .. 2023. 3. 8.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (19)_ case๋ฌธ, ๊ฐ์ฒด ํ™œ์šฉ ๋ณ€ํ˜• case๋ฌธ JS์—์„œ ํ™œ์šฉํ•˜๋Š” case๋ฌธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž 1. case๋ฌธ ํŠน์ • ๊ฐ’์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์˜ต์…˜์ด ์กด์žฌํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. const option = 1; switch (option) { case 1: console.log('1๋ฒˆ'); break; case 2: console.log('2๋ฒˆ'); break; case 3: console.log('3๋ฒˆ'); break; default: console.log('๋ฌดํšจ'); } >>> 1๋ฒˆ switch ~ case ๋ฌธ์„ ์ด์šฉํ•œ ์˜ˆ์‹œ๋Š” ์œ„์™€ ๊ฐ™๋‹ค. break ์ฃผ์˜ํ•  ์ ์€ break ์ด๋‹ค. break๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•ด๋‹น case์˜ ๋‹ค์Œ case๊นŒ์ง€ ์—ฐ์†์ ์œผ๋กœ ์ˆ˜ํ–‰์ด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์„ค๊ณ„์˜๋„๋Œ€๋กœ ์ˆ˜ํ–‰๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. defalut defalut๋Š”.. 2023. 3. 7.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (18)_ ์ œ์–ด๋ฌธ๊ณผ ์ข‹์€ ์ฝ”๋“œ? JS์—์„œ ์ œ๊ณตํ•˜๋Š” if/else๋ฌธ์„ ์ด์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ์กฐ๊ฑด์— ๋งž์ถ”์–ด ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. const x = 4; if (x % 2) { console.log('ํ™€์ˆ˜'); } else { console.log('์ง์ˆ˜'); } >>> ์ง์ˆ˜ ์œ„์˜ ์˜ˆ์‹œ๋Š” ์•„์ฃผ ๋‹จ์ˆœํ•œ ํ™€์ง ํŒ๋ณ„ ์ฝ”๋“œ์ธ๋ฐ ์ด๊ฒƒ๋ณด๋‹ค ๋” ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ์ ์šฉํ•œ๋‹ค๋ฉด ๋‹น์—ฐํžˆ๋„ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค. ๊ทธ์— ๋”ฐ๋ผ ๊ฐ€๋…์„ฑ์ด ๋‚ฎ์€ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์‹œ) ํ™€์ˆ˜, ์ง์ˆ˜, 4์˜ ๋ฐฐ์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ์ฝ”๋“œ 1) if/else๋ฌธ์˜ ์ค‘์ฒฉ์„ ํ™œ์šฉํ•  ๊ฒฝ์šฐ const x = 6; if (x % 4) { if (x % 2) { console.log('ํ™€์ˆ˜'); } else { console.log('์ง์ˆ˜'); } } else { console.log('4์˜ ๋ฐฐ์ˆ˜'); } >>>.. 2023. 3. 4.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (17)_์Šค์ฝ”ํ”„ JS์—์„œ์˜ ์Šค์ฝ”ํ”„์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! 1. ๋ธ”๋ก๋ฌธ (Block) ๋ธ”๋ก๋ฌธ์€ 0๊ฐœ ์ด์ƒ์˜ statement(๊ตฌ๋ฌธ)์„ ๋ฌถ์€ ๊ฒƒ์„ ์ด์•ผ๊ธฐํ•˜๊ณ , ํ•œ ์Œ์˜ ์ค‘๊ด„ํ˜ธ(brackets)๋กœ ๊ฐ์‹ธ์ ธ์žˆ๋‹ค. { ... } ์ผ๋ฐ˜์ ์œผ๋กœ ์ œ์–ด๋ฌธ, ํ•จ์ˆ˜ ๋“ฑ์— ์‚ฌ์šฉ์ด ๋˜๊ณ  ๋ธ”๋ก๋ฌธ์€ ์ƒˆ๋กœ์šด ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•œ๋‹ค 1) ์Šค์ฝ”ํ”„ (Scope) ์Šค์ฝ”ํ”„๋ž€ ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜, ์‹๋ณ„์ž๋“ค์ด ์œ ํšจํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋งํ•œ๋‹ค. ์ฆ‰, ๋ธ”๋ก๋ฌธ์„ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ๋ฒ”์œ„๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ํŠน์ง• 1_ ๋ธ”๋ก ์•ˆ์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ฅผ ๊ทธ ๋ฐ–์—์„œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ { let x = 1; console.log(x); } console.log(x); >>> 1 >>> Uncaught ReferenceError: x is not defined ์œ„์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ๋ธ”๋ก ์•ˆ์— ์„ ์–ธ.. 2023. 3. 3.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (16)_์›์‹œํƒ€์ž…๊ณผ ์ฐธ์กฐํƒ€์ž… JS์—๋Š” ์›์‹œํƒ€์ž…๊ณผ ์ฐธ์กฐํƒ€์ž…์ด ์กด์žฌํ•œ๋‹ค. ๊ทธ ๋‘˜์„ ๊ฐ’์˜ ๋ณต์‚ฌ์˜ ์ธก๋ฉด์—์„œ ๋น„๊ตํ•˜๋ฉฐ ์•Œ์•„๋ณด์ž! 1) ์›์‹œํƒ€์ž… ์›์‹œํƒ€์ž…์€ ๊ฐ’์— ์˜ํ•œ ๋ณต์‚ฌ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.(Copy by value) let n1 = 1; let s1 = 'A'; //n1, s1 ๋ณต์‚ฌ let n2 = n1; let s2 = s1; //์ƒˆ๋กœ์šด ๊ฐ’ ํ• ๋‹น n2 = 2; s2 = 'B'; console.log(n1, s1); console.log(n2, s2); >>> 1 'A' >>> 2 'B' ์œ„์˜ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ ๊ฐ’ ์ž์ฒด๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ณต์‚ฌ๋ฅผ ํ•œ ์ดํ›„, ๋ฌด์Šจ ์ง“์„ ํ•˜๋“  ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. 2) ์ฐธ์กฐํƒ€์ž… ์ฐธ์กฐํƒ€์ž…์€ '์ฃผ์†Œ๊ฐ’'์ด ๋ณต์‚ฌ๊ฐ€ ๋œ๋‹ค. (Copy by reference) const ob1 = { num : 1, str : 'A' }; /.. 2023. 3. 1.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (15)_์—ฐ์‚ฐ์ž(์‰ผํ‘œ, null๋ณ‘ํ•ฉ(??) ) ์ง€๊ธˆ๊นŒ์ง€ ์‚ดํŽด๋ณธ ๊ฒƒ ์™ธ์˜ ์—ฐ์‚ฐ์ž๋“ค์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ณด์ž! 1. ์‰ผํ‘œ ์—ฐ์‚ฐ์ž ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์‹คํ–‰๋˜๋ฉฐ, ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์—ฐ์‚ฐ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. console.log( (1,2,3) ); >>> 3 console.log( (10/2, 5%2, 1+1) ); >>> 2 ์ด์ฒ˜๋Ÿผ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์—ฐ์‚ฐ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค! 2. null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ?? null ๋˜๋Š” undefined๋ฅผ ๊ฑธ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. ์ฆ‰, ์•ž์˜ ์›์†Œ๊ฐ€ ๋‘˜ ์ค‘ ํ•˜๋‚˜์ผ ๊ฒฝ์šฐ ๋’ค์˜ ์›์†Œ๋กœ ๋Œ€์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค! let x;//undefined x ?? console.log('Hello'); x = null;//null x ?? console.log('Hello'); x = 0; x ?? console.log('Hello'); //0์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ข…๋ฃŒ x = 1;.. 2023. 2. 26.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (14)_๋ถˆ๋ฆฌ์–ธ์— ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž๋“ค ๋ถˆ๋ฆฌ์–ธ(boolean)์— ๊ด€๋ จ๋œ ์—ฐ์‚ฐ์ž๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! let a = 1 === 2;//false let b = 'abc' !== 'def'//true let c = a !== b;//true let d = typeof a === typeof b === true;//true 4๋ฒˆ์งธ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์—ฐ์† ๋น„๊ต ์‹œ์—๋Š” ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์—ฐ์‚ฐ์ด ๋œ๋‹ค. (ํ•ด๋‹น ์˜ˆ์‹œ๋Š” ๊ฐ™์€ ์šฐ์„ ์ˆœ์œ„ ์ด๋ฏ€๋กœ ์•ž์˜ ์—ฐ์‚ฐ์ด ๋จผ์ €) 1. ์—ฐ์‚ฐ์ž 1) ๋ถ€์ • ์—ฐ์‚ฐ์ž ! ๋ฅผ ์ด์šฉํ•ด NOT ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. !true //false !!true//true ์ด๋•Œ !!๋กœ ๋‘๊ฐœ๋ฅผ ๋ถ™์ผ ๊ฒฝ์šฐ !๊ฐ€ ์„œ๋กœ ์น˜ํ™˜๋˜๋Š”๋ฐ ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ ๊ฐ’์„ boolean ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ ํ•  ์ˆ˜ ์žˆ๋‹ค. console.log(!!'a') >>> true 2) AND O.. 2023. 2. 26.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (13)_์ˆซ์ž์— ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž๋“ค ์ˆซ์ž์™€ ๊ด€๋ จ๋œ ์—ฐ์‚ฐ์ž๋“ค์„ ์•Œ์•„๋ณด์ž! 1. ์ˆซ์ž ์ž๋ฃŒํ˜• number 1) ์–‘๊ณผ ์Œ JS์—์„œ๋Š” ์ •์ˆ˜์™€ ์‹ค์ˆ˜ ๋ชจ๋‘ number ์ž๋ฃŒํ˜•์ด๋‹ค. ์ฆ‰, ์ •์ˆ˜๋„ ๋‚ด๋ถ€์—์„œ ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค. + ์™€ -๋กœ ์–‘๊ณผ ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค! 2) ๋ฌดํ•œ๋Œ€ Infinity ๋Š” ๋ฌดํ•œ๋Œ€๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ž๋ฃŒํ˜•์œผ๋กœ number์˜ ๋ฒ”์ฃผ์— ์†ํ•œ๋‹ค. ์ด ๋˜ํ•œ ์–‘๊ณผ ์Œ์ด ์กด์žฌํ•œ๋‹ค. 3) NaN Not a Number์˜ ์•ฝ์ž๋กœ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. NaN ์—ญ์‹œ number์˜ ๋ฒ”์ฃผ์— ์†ํ•œ๋‹ค. let x = 1 / 'a'; let y = 2 * 'a'; let z = NaN; console.log(x, typeof x); console.log(y, typeof y); console.log(z, typeof z); >>> NaN 'numbe.. 2023. 2. 26.
๋ฐ˜์‘ํ˜•