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

๐Ÿ“š Study Note/JavaScript9

๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - ํ”„๋กœ๋ฏธ์Šค ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ES6์ด์ „์— ๋น„๋™๊ธฐ ์ฒ˜๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋˜ ํ•˜๋‚˜์˜ ํŒจํ„ด์ด์ง€๋งŒ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ๋“ค์ด ์žˆ์–ด ES6์—์„œ ํ”„๋กœ๋ฏธ์Šค ํŒจํ„ด์ด ๋„์ž…๋œ๋‹ค. 1. ์ฝœ๋ฐฑ ํ—ฌ๋กœ ์ธํ•ด ๊ฐ€๋…์„ฑ์ด ๋‚˜์˜๋‹ค. ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๊ณ  ๋˜๋‹ค์‹œ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์ค‘์ฒฉ๋˜์–ด ๋ณต์žก๋„๊ฐ€ ๋†’์•„์ง€๋Š” ํ˜„์ƒ let g = 0 setTimeout(() => {g = 100;},0) console.log(g) // 0 ์œ„์˜ ์ฝ”๋“œ์—์„œ ์ฒ˜๋Ÿผ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๊ธฐ๋Œ€ํ•œ ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค. setTimeout์€ ์‹คํ–‰ํ›„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋˜๋ฉด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํƒœ์Šคํฌ ํ๋กœ ์ด๋™ํ•œ๋‹ค, ๊ทธ๋ฆฌ๊ณ  ์ฝœ ์Šคํƒ์ด ๋น„์–ด ์žˆ์œผ๋ฉด, ์ด๋•Œ ํƒœ์Šคํฌ ํ์—์„œ ์ฝœ์Šคํƒ์œผ๋กœ ์ด๋™ํ•˜๊ณ  ์ฝœ๋ฐฑํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— g = 100 .. 2022. 12. 31.
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - REST API REST REST๋ž€ HTTP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์„ ๊ทœ์ •ํ•œ ์•„ํ‚คํ…์ณ์ด๋‹ค. - REST์˜ ๊ธฐ๋ณธ์›์น™์„ ์„ฑ์‹คํžˆ ์น˜ํ‚จ ์„œ๋น„์Šค ๋””์ž์ธ์„ RESTful์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค. - REST API๋Š” REST๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค API๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. REST API ๊ตฌ์„ฑ - ์ž์› : URL - ํ–‰์œ„ : HTTP ์š”์ฒญ ๋ฉ”์„œ๋“œ - ํ‘œํ˜„ : ํŽ˜์ด๋กœ๋“œ REST API ์„ค๊ณ„ ์›์น™ 1. URL๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์€ ๋™์‚ฌ๋ณด๋‹ค๋Š” ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. # bad GET /getTodos/1 # good GET /Todos/1 2. ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP ์š”์ฒญ ๋ฉ”์„œ๋“œ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์š”์ฒญ ๋ฉ”์„œ๋“œ๋Š” ํฌ๊ฒŒ 5๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. (GET, POST, PUT, PATCH, DE.. 2022. 12. 31.
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - Ajax Ajax๋ž€? Ajax๋ž€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ , ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ์›นํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค. Ajax๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ด์ „์˜ ์›นํŽ˜์ด์ง€๋Š” html ํƒœ๊ทธ๋กœ ์‹œ์ž‘ํ•ด์„œ html ํƒœ๊ทธ๋กœ ๋๋‚˜๋Š” ์™„์ „ํ•œ HTML์„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „์†ก๋ฐ›์•„ ์›นํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋–„๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์ ๋“ค์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 1. ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋ถ€๋ถ„๊นŒ์ง€ ํฌํ•จ๋œ ์™„์ „ํ•œ HTML์„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋งค๋ฒˆ ๋‹ค์‹œ ์ „์†ก๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์ด ๋ฐœ์ƒํ•œ๋‹ค. 2. ๋งค๋ฒˆ ์ƒˆ๋กœ์šด HTML์„ ์ „์†ก ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๊นœ๋นก์ด๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค. 3. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์ด ๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ์‘.. 2022. 12. 31.
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ฅผ ์•Œ๋ฉด ํ˜ธ์ด์ŠคํŒ…๊ณผ ํด๋กœ์ €, ์ฝ”๋“œ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ์˜ ํƒ€์ž… - ์ „์—ญ ์ฝ”๋“œ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ƒ์œ„ ์Šค์ฝ” l-lsh.tistory.com ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ํ•˜๋‚˜์˜ ์ฝœ์Šคํƒ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํƒœ์Šคํฌ๋“ค์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋”๋ผ๋„ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•˜๋‚˜์”ฉ ํƒœ์Šคํฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์ด๊ฒƒ์„ ๋™๊ธฐ ์ฒ˜๋ฆฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋™๊ธฐ ์ฒ˜๋ฆฌ: ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ์— ์‹คํ–‰๋  ํƒœ์Šคํฌ๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐฉ์‹ - ์žฅ์  : ํƒœ์Šคํฌ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋œ๋‹ค. - ๋‹จ์  : ํƒœ์Šคํฌ๊ฐ€ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•ž์„  ํƒœ์Šคํฌ๊ฐ€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ.. 2022. 12. 31.
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - this ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ this์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. this ์ •์˜ - ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด ๋˜๋Š” ์ž์‹ ์ด ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž๊ธฐ ์ฐธ์กฐ ๋ณ€์ˆ˜๋‹ค. - this๋ฅผ ํ†ตํ•ด ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด ๋˜๋Š” ์ž์‹ ์ด ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์„œ๋“ค๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. this ์‚ฌ์šฉ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ this ๋ฐ”์ธ๋”ฉ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹์— ์˜ํ•ด ๋™์ ์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค. - ์ „์—ญ์—์„œ this this๋Š” ์–ด๋””์„œ๋“  ์ฐธ์กฐ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ „์—ญ์—์„œ์˜ this๋Š” ์ „์—ญ ๊ฐ์ฒด window๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. console.log(this) // window - ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ this ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ this๋ฅผ ์‚ฌ์šฉ ์‹œ ์ „์—ญ ๊ฐ์ฒด window๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ํ•˜์ง€๋งŒ strict mode์ผ ๊ฒฝ์šฐ undefined๊ฐ€ ๋ฐ”์ธ๋”ฉ๋œ๋‹ค. ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ์ผ๋ฐ˜ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ๋˜๋ฉด this.. 2022. 12. 25.
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›์‹œ ๊ฐ’์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’(ํ•จ์ˆ˜, ๋ฐฐ์—ด, ์ •๊ทœ ํ‘œํ˜„์‹ ๋“ฑ)์€ ๋ชจ๋‘ ๊ฐ์ฒด์ด๋‹ค. - ๊ฐ์ฒดํƒ€์ž…์€ ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑํ•œ ๋ณตํ•ฉ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. - ๊ฐ์ฒด๋Š” 0๊ฐœ ์ด์ƒ์˜ ํ”„๋กœํผํ‹ฐ๋กœ ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ์ด๋ฉฐ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. - ๋ชจ๋“  ๊ฐ’์€ ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•จ์ˆ˜๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. (ํ•จ์ˆ˜๊ฐ€ ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์ธ ๊ฒฝ์šฐ ๋ฉ”์„œ๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.) - {...} ์ค‘๊ด„ํ˜ธ ์•ˆ์— ํ”„๋กœํผํ‹ฐ๋ฅผ ์ •์˜ ํ•˜๋ฉฐ, ๋‚˜์—ดํ•  ๋•Œ๋Š” ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. var person = { name: "Lee", // ํ”„๋กœํผํ‹ฐ sayHello: function () { // ๋ฉ”์„œ๋“œ console.log("Hello ~~") } console.log(typeof person) // object console.log.. 2022. 12. 25.
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ฅผ ์•Œ๋ฉด ํ˜ธ์ด์ŠคํŒ…๊ณผ ํด๋กœ์ €, ์ฝ”๋“œ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ์˜ ํƒ€์ž… - ์ „์—ญ ์ฝ”๋“œ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ƒ์œ„ ์Šค์ฝ”ํ”„์ธ ์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. - ํ•จ์ˆ˜ ์ฝ”๋“œ ์ง€์—ญ ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, arguments๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. - eval ์ฝ”๋“œ ์—„๊ฒฉ ๋ชจ๋“œ์—์„œ ์ž์‹ ๋งŒ์˜ ๋…์ž์ ์ธ ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. - ๋ชจ๋“ˆ ์ฝ”๋“œ ๋ชจ๋“ˆ๋ณ„๋กœ ๋…๋ฆฝ์ ์ธ ๋ชจ๋“ˆ ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์†Œ์Šค์ฝ”๋“œ(์ „์—ญ, ํ•จ์ˆ˜, eval, ๋ชจ๋“ˆ) → ์ฝ”๋“œ ํ‰๊ฐ€ → ์‹คํ–‰ ์ปจํ…์ŠคํŠธ(์ „์—ญ, ํ•จ์ˆ˜, eval, ๋ชจ๋“ˆ) ์†Œ์Šค ์ฝ”๋“œ์˜ ํ‰๊ฐ€์™€ ์‹คํ–‰ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์†Œ์Šค์ฝ”๋“œ๋ฅผ 2๊ฐœ์˜ ๊ณผ์ •์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌํ•œ๋‹ค ( ์†Œ์Šค์ฝ”๋“œ ํ‰๊ฐ€, ์†Œ์Šค์ฝ”๋“œ ์‹คํ–‰ ) - ์†Œ์Šค ์ฝ”๋“œ ํ‰๊ฐ€ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์ƒ์„ฑํ•˜๊ณ  .. 2022. 12. 11.
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - ํ˜ธ์ด์ŠคํŒ…, var, let, const var, let, const ๊ฐ๊ฐ์˜ ํŠน์ง•๊ณผ ํ˜ธ์ด์ŠคํŒ…์— ๊ด€ํ•ด์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. var - ๋ณ€์ˆ˜ ์ค‘๋ณต ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค var a = 'a' console.log(a) // 'a' var a = 'aa' console.log(a) // 'aa' - ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง„๋‹ค var ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธํ•œ ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด ์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง„ ์ „์—ญ ๋ณ€์ˆ˜์ด๋‹ค. ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ž€? ํ•จ์ˆ˜์˜ ์ฝ”๋“œ ๋ธ”๋ก๋งŒ์„ ์ง€์—ญ ์Šค์ฝ”ํ”„๋กœ ์ธ์ •ํ•˜๋ฉฐ ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง„๋‹ค. - ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ… var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ํ˜ธ์ด์ŠคํŒ… ๊ณผ์ •์—์„œ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๊ฐ€ ๋™์‹ ์— ์ง„ํ–‰๋˜๋ฉฐ ์ด๋•Œ undefined๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜ ์„ ์–ธ ์ „์— ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด undefined๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. cons.. 2022. 12. 9.
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive - ์Šค์ฝ”ํ”„ ์Šค์ฝ”ํ”„ ์Šค์ฝ”ํ”„๋ž€ ์‹๋ณ„์ž๊ฐ€ ์œ ํšจํ•œ ๋ฒ”์œ„๋ฅผ ๋œปํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์‹๋ณ„์ž๋Š” ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค ์ด๋ฆ„ ๋“ฑ์„ ๋œป ํ•œ๋‹ค. ์šฐ์„  ์Šค์ฝ”ํ”„๋Š” ์„ ์–ธ๋œ ์œ„์น˜์— ๋”ฐ๋ผ ํฌ๊ฒŒ ์ง€์—ญ ์Šค์ฝ”ํ”„, ์ „์—ญ ์Šค์ฝ”ํ”„๋กœ ๋‚˜๋‰œ๋‹ค. ์ง€์—ญ ์Šค์ฝ”ํ”„ ์ง€์—ญ์ด๋ž€ ํ•จ์ˆ˜ ๋ชธ์ฒด ๋‚ด๋ถ€๋ฅผ ๋œปํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•จ์ˆ˜ ๋‚ด๋ถ€ ๋˜๋Š” ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ์ง€์—ญ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง€๋Š” ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋˜๋ฉฐ ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์ž์‹ ์˜ ์ง€์—ญ ์Šค์ฝ”ํ”„์™€ ํ•˜์œ„ ์ง€์—ญ ์Šค์ฝ”ํ”„์—์„œ๋งŒ ์ฐธ์กฐ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ „์—ญ ์Šค์ฝ”ํ”„ ์ „์—ญ์ด๋ž€ ์ฝ”๋“œ์˜ ๊ฐ€์žฅ ๋ฐ”๊นฅ์ชฝ ์˜์—ญ์„ ๋งํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ „์—ญ์— ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง€๋Š” ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋˜๋ฉฐ ์ „์—ญ ๋ณ€์ˆ˜๋Š” ์–ด๋””์„œ๋“  ์ฐธ์กฐ ๊ฐ€๋Šฅํ•˜๋‹ค. var x = 'global' // ์ „์—ญ ์Šค์ฝ”ํ”„, ์ „์—ญ ๋ณ€์ˆ˜ function outer(){ // ์ง€์—ญ ์Šค์ฝ”ํ”„ var z = 'local' // .. 2022. 12. 8.