๋ชฉ๋ก๐ŸŽจFrontEnd/Javascript (13)

Input + Output = True

javascript 'use strict'๋ž€?

๐Ÿ˜ŽJavascript] 'use strict' โœ… ์—„๊ฒฉ๋ชจ๋“œ (use strict) 'use strict'๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์—„๊ฒฉ๋ชจ๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค ์—„๊ฒฉ๋ชจ๋“œ๋ž€ ์„ ์–ธํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋Š” ๋“ฑ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ์—„๊ฒฉํ•œ ๊ธฐ์ค€์ด ์ ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค ์—„๊ฒฉ๋ชจ๋“œ์˜ ์‚ฌ์šฉ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ์ฐจ์ด์ ์„ ์‚ดํŽด๋ณด์ž function test() { x = 5 } test() console.log(x) // 5 ์„ ์–ธ๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ x๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ์ถœ๋ ฅ๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ ์‹คํ–‰ํ•ด๋ณด๋ฉด ์ •์ƒ ์ž‘๋™ํ•œ๋‹ค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์•”๋ฌต์ ์œผ๋กœ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์ƒ ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” true๊ฐ€ ๋œ๋‹ค function test() { x = 5 } test() console.log(x) // 5 cons..

๐ŸŽจFrontEnd/Javascript 2023. 7. 19. 00:26
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ - ์ฝœ ์Šคํƒ, ๋ฉ”๋ชจ๋ฆฌ ํž™

๐Ÿ˜ŽJavascript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ - ์ฝœ ์Šคํƒ, ๋ฉ”๋ชจ๋ฆฌ ํž™ ๋ฉ”๋ชจ๋ฆฌ (RAM) - Random Access Memory ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปดํ“จํ„ฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ์ปดํ“จํ„ฐ ๋˜๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๋ฉด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์‚ฌ๋ผ์ง„๋‹ค โœ… ์ฝœ ์Šคํƒ, ๋ฉ”๋ชจ๋ฆฌ ํž™์ด๋ž€? 1. ์ฝœ์Šคํƒ(Call Stack) ์›์‹œํƒ€์ž… ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค(string, number, boolean, null, undefined, bigint, symbol) ์‹คํ–‰์ปจํ…์ŠคํŠธ(Execution Context)๋ฅผ ํ†ตํ•ด ์•„๋ž˜ ์ž‘์—…๋“ค์„ ์ œ์–ดํ•œ๋‹ค ๋ณ€์ˆ˜ ์‹๋ณ„์ž(์ด๋ฆ„) ์ €์žฅ ์Šค์ฝ”ํ”„ ์ฒด์ธ ๋ฐ this ๊ด€๋ฆฌ ์ฝ”๋“œ ์‹คํ–‰ ์ˆœ์„œ ๊ด€๋ฆฌ ๋“ฑ์„ ์ˆ˜ํ–‰ 2. ๋ฉ”๋ชจ๋ฆฌ ํž™(Memory Heap) ์ฐธ์กฐํƒ€์ž… ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค..

๐ŸŽจFrontEnd/Javascript 2023. 7. 16. 20:27
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ˜ธ์ด์ŠคํŒ…๊ณผ TDZ

๐Ÿ˜Ž ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ˜ธ์ด์ŠคํŒ…๊ณผ TDZ โœ… ํ˜ธ์ด์ŠคํŒ… ํ˜ธ์ด์ŠคํŒ…(Hoisting) ์ฝ”๋“œ ์‹คํ–‰ ์ „ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋ฏธ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ. ์ฝ”๋“œ์—์„œ ์„ ์–ธ๋œ ์œ„์น˜์™€ ์ƒ๊ด€์—†์ด ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜ ์„ ์–ธ์ด ์Šค์ฝ”ํ”„์˜ ์ตœ์ƒ๋‹จ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง€๋Š” ๊ฒƒ ๊ฐ™์€ ํ˜„์ƒ์„ ์˜๋ฏธํ•œ๋‹ค. ํ˜ธ์ด์ŠคํŒ… ๊ทœ์น™ ํ˜ธ์ด์ŠคํŒ…์€ ํฌ๊ฒŒ ํ•จ์ˆ˜ ํ˜ธ์ด์ŠคํŒ…๊ณผ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์„ ์–ธ๋œ ํ•จ์ˆ˜๋Š” ์ƒ๋‹จ์—์„œ ์ฐธ์กฐ, ํ˜ธ์ถœ ๊ฐ€๋Šฅ. ์„ ์–ธ๋œ var ๋Š” ์ƒ๋‹จ์—์„œ ์ฐธ์กฐ, ํ• ๋‹น ๊ฐ€๋Šฅ. ์„ ์–ธ๋œ let, const ๋Š” ์ƒ๋‹จ์—์„œ ์ฐธ์กฐ, ํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ. [ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์—์„œ ํ˜ธ์ด์ŠคํŒ… ๋ฐฉ์‹์˜ ์ฐจ์ด] function declaration(){ //ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ console.log('ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ') } declaration() cons..

๐ŸŽจFrontEnd/Javascript 2023. 3. 28. 14:13
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Promise async await ์„ค๋ช… ๋ฐ ์˜ˆ์ œ

๐Ÿ˜Ž์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Promise async await ์„ค๋ช… ๋ฐ ์˜ˆ์ œ โœ… JavaScript Promise ๋ž€? JavaScript Promise๋Š” ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์ด๋‹ค. ์–ด๋–ค ์ž‘์—…์ด ์™„๋ฃŒ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ๊ทธ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฆ‰, Promise๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. Promise๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ๋‹ค. ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด Promise์˜ ์ƒํƒœ๋Š” ๋Œ€๊ธฐ(Pending), ์ดํ–‰(Fulfilled), ๊ฑฐ๋ถ€(Rejected) ์„ธ ๊ฐ€์ง€ ์ƒํƒœ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ–๋Š”๋‹ค. Promise๋Š” ๋‹จ ํ•œ ๋ฒˆ๋งŒ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. Promise๋Š” ๋Œ€๊ธฐ(Pending) ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•ด ์ดํ–‰(Fulfilled) ๋˜๋Š” ๊ฑฐ๋ถ€(Rejected) ์ƒํƒœ ์ค‘ ํ•˜๋‚˜๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. ์ดํ–‰ ..

๐ŸŽจFrontEnd/Javascript 2023. 3. 21. 17:07
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์ดํ•ญ์—ฐ์‚ฐ์ž(๋‹จ์ถ•ํ‰๊ฐ€)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์กฐ๊ฑด๋ฌธ์€ if, switch ๋“ฑ ๋งŽ์ด ์žˆ๊ณ , ์˜ค๋Š˜์€ ๊ทธ ์ค‘ ์—ฐ์‚ฐ์ž ์กฐ๊ฑด๋ฌธ์„ ์•Œ์•„๋ณด์ž ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ผํ•ญ์—ฐ์‚ฐ์ž const isState = true isState ? true์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋ฌธ : false์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋ฌธ // false์ผ ๊ฒฝ์šฐ ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์—” ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค isState ? true์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋ฌธ : null ์‚ผํ•ญ์—ฐ์‚ฐ์ž์—์„œ ์–ด๋– ํ•œ ๊ฒฝ์šฐ์— ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๋• ์œ„์˜ ๋‚ด์šฉ์ฒ˜๋Ÿผ null์„ ์‚ฌ์šฉํ•ด์„œ ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹ˆ๋ผ๋Š” ๋ช…์‹œ๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ƒ๋žต ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ผ๊ณ  ์ƒ๊ฐ๋œ๋‹ค. ์ด๋Ÿด ๋• ์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด๋ณด์ž ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดํ•ญ์—ฐ์‚ฐ์ž const isState = true isState && true์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋ฌธ // ์กฐ๊ฑด๊ณผ && ํ‘œ์‹œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด์—..

๐ŸŽจFrontEnd/Javascript 2023. 1. 29. 19:38
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋น„๋™๊ธฐ ์›๋ฆฌ - ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ ๋น„๋™๊ธฐ

๐Ÿ˜Ž ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋น„๋™๊ธฐ ์›๋ฆฌ - ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ ๋น„๋™๊ธฐ ์Šค๋ ˆ๋“œ(thread) ์–ด๋– ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ, ํŠนํžˆ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„์˜ ๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ํ”„๋กœ๊ทธ๋žจ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‘˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹คํ–‰ ๋ฐฉ์‹์„ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ(multithread)๋ผ๊ณ  ํ•œ๋‹ค. -์œ„ํ‚ค๋ฐฑ๊ณผ- ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” '๋‹จ์ผ ์Šค๋ ˆ๋“œ' ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด๋‹ค. ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜๋ผ๋Š” ๋ง์€, ๋™์‹œ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์›น์‚ฌ์ดํŠธ๋“ค์„ ๋ณด๋ฉด HTTP ์š”์ฒญ ์ „์†ก, ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋ฒ„ํŠผ ํด๋ฆญ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ๋“ค์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์ž„์—๋„ ์ด๋ ‡๊ฒŒ ๋™์‹œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ด์œ ๋ฅผ ์•Œ์•„๋ณด์ž. โœ… Event Loop ๊ฐ€์žฅ ๋จผ์ € ..

๐ŸŽจFrontEnd/Javascript 2023. 1. 5. 18:41
์˜ต์…”๋„ ์ฒด์ด๋‹์ด๋ž€?. javascript optional chaining ?.

๐Ÿ˜Ž ์˜ต์…”๋„ ์ฒด์ด๋‹์ด๋ž€? โœ… ์˜ต์…”๋„ ์ฒด์ด๋‹?. ์˜ต์…”๋„ ์ฒด์ด๋‹(optional chaining) ?. ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœํผํ‹ฐ๊ฐ€ ์—†๋Š” ์ค‘์ฒฉ ๊ฐ์ฒด๋ฅผ ์—๋Ÿฌ ์—†์ด ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ex) user.getAddress?.() โœ… ์˜ต์…”๋„ ์ฒด์ด๋‹์ด ํ•„์š”ํ•œ ์ด์œ  ์—†๋Š” ์ •๋ณด ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๋ช… ์žˆ๊ณ , ๊ทธ์ค‘ ๋ช‡ ๋ช…์€ ์ฃผ์†Œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์ด๋Ÿด ๋•Œ user.address.street๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ์†Œ ์ •๋ณด์— ์ ‘๊ทผํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. let user = {} //์ฃผ์†Œ ์ •๋ณด๊ฐ€ ์—†๋Š” ์‚ฌ์šฉ์ž console.log(user.address.street) //TypeError: Cannot read property 'street' of undefined ์•„์ง ๊ทธ๋ ค์ง€์ง€ ์•Š์€ DOM ๋˜ ๋‹ค๋ฅธ ์ƒํ™ฉ์œผ๋กœ๋Š” ์ž..

๐ŸŽจFrontEnd/Javascript 2023. 1. 4. 14:36