javascript

    [JavaScript] ์‰ผํ‘œ ์—ฐ์‚ฐ์ž (Comma Operator)

    ์‰ผํ‘œ ์—ฐ์‚ฐ์ž๋ž€ MDN์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•œ๋‹ค. ์‰ผํ‘œ ์—ฐ์‚ฐ์ž๋Š” ๊ฐ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ‰๊ฐ€ํ•˜๊ณ  ๋งˆ์ง€๋ง‰ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์‰ผํ‘œ ์—ฐ์‚ฐ์ž๋Š” ์ฃผ๋กœ ์—ฌ๋Ÿฌ ๋™์ž‘์„ ํ•˜๋‚˜์˜ ์ค„์—์„œ ์ฒ˜๋ฆฌํ•˜๋ ค๋Š” ๋ณต์žกํ•œ ๊ตฌ์กฐ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ธฐ๋•Œ๋ฌธ์— ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. let x, y, z; x = 1, y = 2, z = 3; // 3 console.log(x); // 1 let a, b, c; a = (b = 5, c = 6); // 6 console.log(a); // 6 ์‰ผํ‘œ ์—ฐ์‚ฐ์ž์˜ ํ™œ์šฉ for ๋ฌธ const array = [ ['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ]; for (let..

    [Deep Dive] 14-15์žฅ

    14์žฅ ์ „์—ญ ๋ณ€์ˆ˜์˜ ๋ฌธ์ œ์  ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ ์ง€์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ ์ „์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์™€ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์ƒ์„ฑ๋˜๊ณ  ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒํ•˜๋ฉด ์†Œ๋ฉธํ•œ๋‹ค. ์ฆ‰, ์ง€์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๋Š” ํ•จ์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์™€ ์ผ์น˜ํ•œ๋‹ค. ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ํ•จ์ˆ˜๋ณด๋‹ค ์˜ค๋ž˜ ์ƒ์กดํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์Šค์ฝ”ํ”„๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์œผ๋ฉด ์Šค์ฝ”ํ”„๋Š” ์†Œ๋ฉธํ•˜์ง€ ์•Š๊ณ  ์ƒ์กดํ•˜๊ฒŒ ๋œ๋‹ค. ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑํ•œ ์Šค์ฝ”ํ”„์— ๋“ฑ๋ก๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜๋Š” ์ž์‹ ์ด ๋“ฑ๋ก๋œ ์Šค์ฝ”ํ”„๊ฐ€ ์†Œ๋ฉธ(๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ)๋  ๋•Œ๊นŒ์ง€ ์œ ํšจํ•˜๋‹ค. ๋˜ํ•œ ํ˜ธ์ด์ŠคํŒ…์€ ์Šค์ฝ”ํ”„๋ฅผ ๋‹จ์œ„๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ํ˜ธ์ด์ŠคํŒ…์€ ๋ณ€์ˆ˜ ์„ ์–ธ์ด ์Šค์ฝ”ํ”„์˜ ์„ ๋‘๋กœ ๋Œ์–ด ์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ณ ์œ ์˜ ํŠน์ง•์„ ๋งํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ „์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ ๋ธŒ..

    [Deep Dive] 10-11์žฅ

    10์žฅ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๊ฐ์ฒด๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋ฉฐ, ์›์‹œ ๊ฐ’์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’(ํ•จ์ˆ˜, ๋ฐฐ์—ด, ์ •๊ทœ ํ‘œํ˜„์‹ ๋“ฑ)์€ ๋ชจ๋‘ ๊ฐ์ฒด๋‹ค. ์ฆ‰ ๊ฐ์ฒด๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‹ค. ๊ฐ์ฒด๋Š” ํ”„๋กœํผํ‹ฐ์˜ ์ง‘ํ•ฉ์ด๋ฉฐ, ํ”„๋กœํผํ‹ฐ๋Š” ํ‚ค์™€ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ํ•จ์ˆ˜์ผ ๊ฒฝ์šฐ, ์ผ๋ฐ˜ ํ•จ์ˆ˜์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์„œ๋“œ๋ผ ๋ถ€๋ฅธ๋‹ค. ํ”„๋กœํผํ‹ฐ : ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’(data) ๋ฉ”์„œ๋“œ : ํ”„๋กœํผํ‹ฐ(์ƒํƒœ ๋ฐ์ดํ„ฐ)๋ฅผ ์ฐธ๊ณ ํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์ž‘(behavior) var counter = { // ํ”„๋กœํผํ‹ฐ num: 0, // ํ”„๋กœํผํ‹ฐ ํ‚ค์™€ ํ”„๋กœํผํ‹ฐ ๊ฐ’ // ๋ฉ”์„œ๋“œ increase: function() { this.num++; } }; ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ์„œ ํด๋ž˜..

    [Deep Dive] 07-09์žฅ

    07์žฅ ์—ฐ์‚ฐ์ž ์—ฐ์‚ฐ์ž๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ‘œํ˜„์‹์„ ๋Œ€์ƒ์œผ๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋งŒ๋“ ๋‹ค. ์ด๋•Œ ์—ฐ์‚ฐ์˜ ๋Œ€์ƒ์„ ํ”ผ์—ฐ์‚ฐ์ž๋ผ ํ•œ๋‹ค. ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ "๊ฐ’"์ด๋ผ๋Š” ๋ช…์‚ฌ์˜ ์—ญํ• ์„ ํ•œ๋‹ค๋ฉด ์—ฐ์‚ฐ์ž๋Š” "ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ์‚ฐํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“ ๋‹ค"๋ผ๋Š” ๋™์‚ฌ์˜ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ์ดํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž : 2๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฐ์ˆ  ์—ฐ์‚ฐํ•˜์—ฌ ์ˆซ์ž ๊ฐ’์„ ๋งŒ๋“ ๋‹ค. ์ดํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ์˜๋ฏธ ๋ถ€์ˆ˜ ํšจ๊ณผ + ๋ง์…ˆ X (ํ”ผ์—ฐ์‚ฐ์ž์— ์–ด๋– ํ•œ ํšจ๊ณผ๋„ ์—†์Œ) - ๋บ„์…ˆ X * ๊ณฑ์…ˆ X / ๋‚˜๋ˆ—์…ˆ X % ๋‚˜๋จธ์ง€ X ๋‹จํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž : 1๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฐ์ˆ  ์—ฐ์‚ฐํ•˜์—ฌ ์ˆซ์ž ๊ฐ’์„ ๋งŒ๋“ ๋‹ค ๋‹จํ•ญ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ์˜๋ฏธ ๋ถ€์ˆ˜ ํšจ๊ณผ ++ ์ฆ๊ฐ€ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ์•”๋ฌต์  ํ• ๋‹น์ด ์ด๋ฃจ์–ด์ง -- ๊ฐ์†Œ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ์•”๋ฌต์  ํ• ๋‹น์ด ์ด๋ฃจ์–ด์ง + ์–ด..

    [Deep Dive] 04-06์žฅ

    04์žฅ ๋ณ€์ˆ˜ ๋ณ€์ˆ˜๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ์™œ ํ•„์š”ํ•œ๊ฐ€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ , ์ €์žฅ๋œ ๊ฐ’์„ ์ฝ์–ด ๋“ค์—ฌ ์žฌ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€์ˆ˜๋ผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•œ๋‹ค. ๋ณ€์ˆ˜๋Š” ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ™•๋ณดํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ์ž์ฒด ๋˜๋Š” ๊ทธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ถ™์ธ ์ด๋ฆ„์„ ๋งํ•œ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์ฐธ์กฐํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ, ๊ฐ’์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ƒ์ง•์ ์ธ ์ด๋ฆ„์ด๋‹ค. ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ํ• ๋‹น(๋Œ€์ž…, ์ €์žฅ)์ด๋ผ ํ•˜๊ณ , ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์„ ์ฝ์–ด ๋“ค์ด๋Š” ๊ฒƒ์„ ์ฐธ์กฐ๋ผ ํ•œ๋‹ค. ์‹๋ณ„์ž ์‹๋ณ„์ž๋Š” ์–ด๋–ค ๊ฐ’์„ ๊ตฌ๋ณ„ํ•ด์„œ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ๋งํ•œ๋‹ค. ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค ๋“ฑ์˜ ์ด๋ฆ„์€ ๋ชจ๋‘ ์‹๋ณ„์ž๋‹ค. ์„ ์–ธ์— ์˜ํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ์‹๋ณ„์ž์˜ ์กด์žฌ๋ฅผ ์•Œ๋ฆฐ๋‹ค. ์‹๋ณ„์ž๋กœ..

    [์ œ์ฃผ์ฝ”๋”ฉ๋ฒ ์ด์Šค์บ ํ”„] JavaScript 2๋ถ€

    ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ ์กฐ๊ฑด๋ฌธ if else if else switch ์‚ผํ•ญ์—ฐ์‚ฐ์ž let result = true ? 1 : 100; ๋ฐ˜๋ณต๋ฌธ for for in for of while do while forEach break : ํ•ด๋‹น ์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜์—ˆ์„๋•Œ ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœ continue : ํ•ด๋‹น ์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜์—ˆ์„๋•Œ ๋‹ค์Œ ๋ฃจํ”„๋กœ ๋„˜์–ด๊ฐ // for๋ฌธ ๋ฌดํ•œ ๋ฐ˜๋ณต for (;;) { } // for in ๋ฌธ ๋ฌดํ•œ ๋ฐ˜๋ณต let a = '19821'; for (let i of a) { s += parseInt(i); } let b = {'one':1, 'two':2}; for (let j in b) { console.log(j); } // while๋ฌธ ๋ฌดํ•œ ๋ฐ˜๋ณต while (true) { } ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค ํ•จ์ˆ˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ..

    [์ œ์ฃผ์ฝ”๋”ฉ๋ฒ ์ด์Šค์บ ํ”„] JavaScript 1๋ถ€

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฒ„์ „์—…์ด ๋˜์–ด๋„ ์ด์ „์— ์žˆ์—ˆ๋˜ ๊ธฐ๋Šฅ์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ES5 ๋ถ€ํ„ฐ ์—„๊ฒฉ๋ชจ๋“œ, ๋ฐฐ์—ด๋ฉ”์„œ๋“œ๊ฐ€ ์ถ”๊ฐ€ ES6 ๋ถ€ํ„ฐ const, let, Promise, Arrow function, class ๋“ฑ์˜ ๋ฌธ๋ฒ•๋“ค์ด ๋Œ€๊ฑฐ ์ถ”๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‚ฝ์ž… ์œ„์น˜๋Š” ๋ณดํ†ต body ํƒœ๊ทธ์˜ ๋งจ ๋์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ตฌ์กฐ ๋ฌธ(statement)์€ ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ๋ฌธ์€ ๊ฐ’, ์—ฐ์‚ฐ์ž, ํ‚ค์›Œ๋“œ, ๋ช…๋ น์–ด, ํ‘œํ˜„์‹ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๊ณต๋ฐฑ์€ ๋ณ‘ํ•ฉํ•œ๋‹ค. ์ฃผ์„ // ํ•œ ์ค„ ์ฃผ์„ /* ์—ฌ๋Ÿฌ์ค„ ์ฃผ์„ */ ์—„๊ฒฉ ๋ชจ๋“œ "use strict"; use stirict ๋ผ๋Š” ์ง€์‹œ์ž๋ฅผ ํ†ตํ•ด ์—„๊ฒฉ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™” ํ–ˆ์„๋•Œ๋งŒ ์ตœ์‹  ๋ฌธ๋ฒ•์ด ๋ฐ˜์˜๋œ๋‹ค. ๋ณดํ†ต ์ฝ”๋“œ์˜ ์ตœ์ƒ๋‹จ์— ์ถ”๊ฐ€ํ•œ๋‹ค. class ๋ฌธ๋ฒ•์˜ ๊ฒฝ์šฐ ์—„๊ฒฉ ๋ชจ๋“œ๊ฐ€ ๊ธฐ๋ณธ..