Skip to content

Latest commit

ย 

History

History
84 lines (76 loc) ยท 4 KB

File metadata and controls

84 lines (76 loc) ยท 4 KB

๊ฐ’

๋ฐฐ์—ด

  • ๋ฐฐ์—ด ํฌ๊ธฐ๋Š” ๋ฏธ๋ฆฌ ์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์›ํ•˜๋Š” ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค
  • ๋ฐฐ์—ด ๊ฐ’์— delete ์—ฐ์‚ฐ์ž๋ฅผ ์ ์šฉํ•˜๋ฉด slot์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋งˆ์ง€๋ง‰ ์›์†Œ๊นŒ์ง€ ์ œ๊ฑฐํ•ด๋„ length ํ”„๋กœํผํ‹ฐ ๊ฐ’์€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค
  • ๋ฐฐ์—ด์— ๋ฌธ์ž์—ด ํƒ€์ž…์˜ ํ‚ค/ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค

์œ ์‚ฌ๋ฐฐ์—ด

  • ์œ ์‚ฌ๋ฐฐ์—ด ๊ฐ’ : ์ˆซ์ž ์ธ๋ฑ์Šค๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ
  • ์œ ์‚ฌ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ง„์งœ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ€ ๋•Œ
    • indexOf(), concat(), forEach() ๋“ฑ
    • Array.from() : ES6

๋ฌธ์ž์—ด

  • ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž ๋ฐฐ์—ด์€ ๊ฐ™์ง€ ์•Š๋‹ค
  • ๋ฌธ์ž์—ด์€ ๋ถˆ๋ฉด ๊ฐ’(Immutable) / ๋ฐฐ์—ด์€ ๊ฐ€๋ณ€ ๊ฐ’(mutable)
    var a = "foo";
    a[1] = "o"; // ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‚˜ ์ด์ „์—๋Š” ์˜ค๋ฅ˜
    a.charAt(1); // ์˜ณ์€ ์ ‘๊ทผ๋ฒ•
  • ๋ฌธ์ž์—ด์€ ๋ถˆ๋ณ€ ๊ฐ’์ด๋ฏ€๋กœ ๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ๋Š” ๊ทธ ๋‚ด์šฉ์„ ๋ฐ”๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•œ ํ›„ ๋ฐ˜ํ™˜
  • ๋ฐ˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋Š” ๊ทธ ์ž๋ฆฌ์—์„œ ๊ณง๋ฐ”๋กœ ์›์†Œ๋ฅผ ์ˆ˜์ •
  • ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ฉ”์„œ๋“œ๋Š” ์‚ฌ์‹ค์ƒ ๋ฌธ์ž์—ด์— ์“ธ ์ˆ˜ ์—†์ง€๋งŒ, ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ๋ถˆ๋ณ€ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ฅผ ๋นŒ๋ ค ์“ธ ์ˆ˜ ์žˆ๋‹ค
  • ex
    var a = "foo";
    a.reverse; // undefined. reverse() ๋ฌธ์ž์—ด์˜ ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์€ ๊ฐ€๋ณ€ ๋ฉ”์„œ๋“œ
  • ๋ฌธ์ž์—ด์„ ๋ฐ”๊พธ๊ณ  ์›ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋˜๋Œ๋ฆฌ๋Š” hack
    var c = a
        // 'a'๋ฅผ ๋ฌธ์ž์˜ ๋ฐฐ์—ด๋กœ ๋ถ„ํ• 
        .split("") 
        // ๋ฌธ์ž ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘๋Š”๋‹ค
        .reverse()
        // ๋ฌธ์ž ๋ฐฐ์—ด์„ ํ•ฉ์ณ ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋˜๋Œ๋ฆฐ๋‹ค
        .join("");
        c; // "oof"

์ˆซ์ž

  • Nan : ์ž๊ธฐ์ž์‹ ๊ณผ๋„ ๋™๋“ฑํ•˜์ง€ ์•Š์Œ
    • Nan ๋น„๊ต ๋ฐฉ๋ฒ•
      • isNan() ์ธ์ž๊ฐ’์ด ์ˆซ์ž์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ‰๊ฐ€ -> ๊ฒฐ๊ณผ ๋ถ€์ •ํ™•
      • ES6 -> Number.isNan()
  • 0 : 0 / -0์ด ์กด์žฌ

๋™๋“ฑ๋น„๊ต

  • Object.is() -> ES6
  • ==, ===๊ฐ€ ์•ˆ์ „ํ•˜๋‹ค๋ฉด Object.is()๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํŽธ์ด ์ข‹๋‹ค

๊ฐ’ vs ๋ ˆํผ๋Ÿฐ์Šค

  • ์–ด๋–ค ๋ณ€์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋‹ค

  • ๋ ˆํผ๋Ÿฐ์Šค

    • ๊ณต์œ ๋œ ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ด
    • ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋“ค์€ ์ €๋งˆ๋‹ค ํ•ญ์ƒ ๊ณต์œ ๋œ ๋‹จ์ผ ๊ฐ’์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฐธ์กฐํ•œ๋‹ค
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ๊ฐ’ ๋˜๋Š” ๋ ˆํผ๋Ÿฐ์Šค์˜ ํ• ๋‹น ๋ฐ ์ „๋‹ฌ์„ ์ œ์–ดํ•˜๋Š” ๊ตฌ๋ฌธ ์•”์‹œ๊ฐ€ ์ „ํ˜€ ์—†๋‹ค

  • ๊ฐ’์˜ ํƒ€์ž…๋งŒ์œผ๋กœ ๊ฐ’-๋ณต์‚ฌ, ๋ ˆํผ๋Ÿฐ์Šค-๋ณต์‚ฌ ๋‘˜ ์ค‘ ํ•œ์ชฝ์ด ๊ฒฐ์ •๋œ๋‹ค

    var a = 2;
    var b = a; // 'b'๋Š” ์–ธ์ œ๋‚˜ 'a'์—์„œ ๊ฐ’์„ ๋ณต์‚ฌํ•œ๋‹ค
    b++;
    a; // 2
    b; // 3
    // a์—๋Š”์ด ๊ฐ’์˜ ์ดˆ๊ธฐ ์‚ฌ๋ณธ์ด ๋“ค์–ด๊ฐ€๊ณ , b์—๋Š” ๋˜๋‹ค๋ฅธ ์‚ฌ๋ณธ. b๋ฅผ ๋ฐ”๊ฟˆ์œผ๋กœ์จ a๊นŒ์ง€ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Œ
    var c = [1,2,3];
    var d = c; // 'd'๋Š” ๊ณต์œ ๋œ '[1,2,3]'๊ฐ’์˜ ๋ ˆํผ๋Ÿฐ์Šค์ด๋‹ค
    d.push(4);
    c; // [1,2,3,4]
    d; // [1,2,3,4]
    /* c์™€ d๋Š” ํ•ฉ์„ฑ๊ฐ’์ด์ž ๋™์ผํ•œ ๊ณต์œ ๊ฐ’ [1,2,3]์— ๋Œ€ํ•œ ๊ฐœ๋ณ„ ๋ ˆํผ๋Ÿฐ์Šค
    .push()๋กœ ๊ณต์œ ํ•œ ๋ฐฐ์—ด ๊ฐ’ ๋ณ€๊ฒฝ
  • null, undefined, string, number, boolean, symbol(ES6)์˜ ๋‹จ์ˆœ ๊ฐ’(์Šค์นผ๋ผ ์›์‹œ ๊ฐ’ scalar primitives)์€ ์–ธ์ œ๋‚˜ ๊ฐ’-๋ณต์‚ฌ ๋ฐฉ์‹์œผ๋กœ ํ• ๋‹น/์ „๋‹ฌ

  • ๊ฐ์ฒด(๋ฐฐ์—ด๊ณผ ๋ฐ•์‹ฑ๋œ ๊ฐ์ฒด ๋ž˜ํผ ์ „์ฒด)๋‚˜ ํ•จ์ˆ˜ ๋“ฑ ํ•ฉ์„ฑ ๊ฐ’(compound values)์€ ํ• ๋‹น/์ „๋‹ฌ์ด ๋ฐ˜๋“œ์‹œ ๋ ˆํผ๋Ÿฐ์Šค ์‚ฌ๋ณธ์„ ์ƒ์„ฑ

  • ๋ ˆํผ๋Ÿฐ์Šค๋Š” ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ’ ์ž์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ A๋ ˆํผ๋Ÿฐ์Šค๋กœ B๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋Œ€์ƒ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†๋‹ค

  • slice() : ์ธ์ž์—†์ด slice()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ „ํ˜€ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ ์‚ฌ๋ณธ์„ ๋งŒ๋“ ๋‹ค(์–•์€ ๋ณต์‚ฌ shallow copy)

  • ์Šค์นผ๋ผ ์›์‹œ ๊ฐ’์„ ๋ ˆํผ๋Ÿฐ์Šค์ฒ˜๋Ÿผ ๋ฐ”๋€ ๊ฐ’์ด ๋ฐ”๋กœ๋ฐ”๋กœ ๋ฐ˜์˜๋˜๋„๋ก ๋„˜๊ธฐ๋ ค๋ฉด ์›์‹œ ๊ฐ’์„ ๋‹ค๋ฅธ ํ•ฉ์„ฑ ๊ฐ’(๊ฐ์ฒด, ๋ฐฐ์—ด) ๋“ฑ์œผ๋กœ ๊ฐ์‹ธ์•ผํ•œ๋‹ค

  • ์Šค์นผ๋ผ ์›์‹œ ๊ฐ’์„ ๋ ˆํผ๋Ÿฐ์Šค ํ˜•ํƒœ๋กœ ๋„˜๊ธฐ๋ ค๋ฉด Number ๊ฐ์ฒด ๋ž˜ํผ๋กœ ์›์‹œ๊ฐ’์„ ๋ฐ•์‹ฑํ•˜๋ฉด ๋œ๋‹ค

  • ๋‹จ์ˆœ ์Šค์นผ๋ผ ์›์‹œ ๊ฐ’์€ ๊ฐ’-๋ณต์‚ฌ

  • ํ•ฉ์„ฑ ๊ฐ’์€ ๋ ˆํผ๋Ÿฐ์Šค-๋ณต์‚ฌ