๋ชฉ๋ก๐ŸŽจFrontEnd (40)

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
vue 3 - ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง

๐Ÿ˜Ž vue 3 - ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง composition API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค โœ… ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง v-on ๋””๋ ‰ํ‹ฐ๋ธŒ๋ฅผ ํ†ตํ•ด ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹จ์ถ•ํ•ด์„œ @ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค v-on:click="handler" ๋˜๋Š” ์ค„์—ฌ์„œ @click="handler"์™€ ๊ฐ™์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค ์‚ฌ์šฉ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค ์ธ๋ผ์ธ ํ•ธ๋“ค๋Ÿฌ: ์ด๋ฒคํŠธ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋  ๋•Œ ์‹คํ–‰๋˜๋Š” ์ธ๋ผ์ธ JavaScript ๋ฉ”์„œ๋“œ ํ•ธ๋“ค๋Ÿฌ: ์ปดํฌ๋„ŒํŠธ์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ ์ˆซ์ž ๊ฐ’์€: {{ count }} // ์ธ๋ผ์ธ 1 ์ถ”๊ฐ€ // ๋ฉ”์„œ๋“œ 1 ์ถ”๊ฐ€ const count = ref(0) const countIncrement = () => { count.value++ } โœ… ์ด๋ฒคํŠธ ๊ฐ์ฒด ์ ‘๊ทผ ํŠน์ˆ˜ ํ‚ค์›Œ๋“œ $event๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ์ธ๋ผ์ธ ..

๐ŸŽจFrontEnd/Vue 2023. 7. 16. 18:48
vue 3 - v-for ๋ฐ˜๋ณต๋ฌธ

๐Ÿ˜Ž vue 3 - v-for ๋ฐ˜๋ณต๋ฌธ composition API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค โœ… v-for v-for์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋‹ค v-for ์‚ฌ์šฉ ์‹œ์—” ๊ฐ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ถ”์ ํ•ด์„œ ์žฌ์‚ฌ์šฉ ๋ฐ ์žฌ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๊ณ ์œ  key ์†์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค ์ฆ‰, ๋ฆฌ์ŠคํŠธ์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ ๋“ฑ ์žฌ์ •๋ ฌ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์œ ํ•œ key ๊ฐ’์ด ํ•„์š”ํ•˜๋‹ค // v-bind:key๋Š” :key๋กœ ์ถ•์•ฝ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค {{ index }} - {{ item.message }} const items = ref([ { id: 1, message: 'itemA' }, { id: 2, message: 'itemB' } ]) ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค ..

๐ŸŽจFrontEnd/Vue 2023. 7. 12. 00:36
vue 3 ๋ฐ˜์‘ํ˜• - reactive and ref

๐Ÿ˜Ž vue 3 ๋ฐ˜์‘ํ˜• - reactive and ref composition API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค ๋ฐ˜์‘ํ˜• vue์—์„œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ๋ฐ˜์‘ํ˜•์ด๋ผ๊ณ  ํ•œ๋‹ค โœ… reactive reactive() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ๋˜๋Š” ๋ฐฐ์—ด์„ ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค ๋ฐ˜ํ™˜ ๊ฐ’์€ ์›๋ณธ ๊ฐ์ฒด์™€ ๊ฐ™์ง€ ์•Š๊ณ  ์›๋ณธ ๊ฐ์ฒด๋ฅผ ์žฌ์ •์˜ํ•œ ๊ฐ์ฒด์ด๋‹ค const raw = {} const proxy = reactive(raw) // ๋ฐ˜์‘ํ˜•์œผ๋กœ ์žฌ์ •์˜ ๋œ ๊ฒƒ์€ ์›๋ณธ๊ณผ ๊ฐ™์ง€ ์•Š๋‹ค console.log(proxy === raw) // false ๊ฐ์ฒด, ๋ฐฐ์—ด ๋˜๋Š” Map์ด๋‚˜ Set๊ณผ ๊ฐ™์€ ์ปฌ๋ ‰์…˜ ์œ ํ˜•์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค reactive ์˜ˆ์ œ ์ˆซ์ž๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉฐ ํ™”๋ฉด์— ์‹ค์‹œ๊ฐ„ ๋ฐ”์ธ๋”ฉ์„ ํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค reactive ์‚ฌ์šฉ ์—ฌ๋ถ€์— ๋”ฐ..

๐ŸŽจFrontEnd/Vue 2023. 7. 5. 22:45
vue 3 ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

๐Ÿ˜Ž vue 3 ๊ธฐ๋ณธ ๋ฌธ๋ฒ• composition API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค โœ… ๋ฌธ๋ฒ• ํ…์ŠคํŠธ ๋ณด๊ฐ„๋ฒ• ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๊ธฐ๋ณธ ํ˜•ํƒœ - ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ํ•ด์„ ๋ฉ”์„ธ์ง€: {{ msg }} ๋””๋ ‰ํ‹ฐ๋ธŒ vue ๋””๋ ‰ํ‹ฐ๋ธŒ v- ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ์†์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค v-html ๋””๋ ‰ํ‹ฐ๋ธŒ ์‹ค์ œ HTML ์ถœ๋ ฅ ํ…์ŠคํŠธ ๋ณด๊ฐ„๋ฒ• ์‚ฌ์šฉ: {{ rawHtml }} v-html ๋””๋ ‰ํ‹ฐ๋ธŒ ์‚ฌ์šฉ: ํ…์ŠคํŠธ ๋ณด๊ฐ„๋ฒ• ์‚ฌ์šฉ: ์ด๊ฒƒ์€ ๋นจ๊ฐ„์ƒ‰์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. v-html ๋””๋ ‰ํ‹ฐ๋ธŒ ์‚ฌ์šฉ: ์ด๊ฒƒ์€ ๋นจ๊ฐ„์ƒ‰์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž„์˜์˜ html ๋™์ž‘์œผ๋กœ ์ธํ•ด ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์‚ฌ์šฉ์ž ์กฐ์ž‘ ์ปจํ…์ธ ์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค v-html์€ ์‚ฌ์šฉ์„ ์ž์ œํ•˜๊ณ  ๋ฐ˜๋“œ์‹œ ์ด์œ ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ด์•ผํ•œ๋‹ค โœ… ์ž…๋ ฅ ๋ฐ”์ธ๋”ฉ input event v-model ์ด์Šˆ : ํ˜„์žฌ ..

๐ŸŽจFrontEnd/Vue 2023. 7. 4. 00:01