Skip to content

speak_javascript_1

kyusung edited this page Apr 13, 2017 · 1 revision

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งํ•˜๋‹ค

๋ฐฐ๊ฒฝ

๋ธŒ๋ Œ๋˜ ์•„์ดํฌ๊ฐ€ ๋„ท์Šค์ผ€์ดํ”„์— ๋„์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ฌ. ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ๋ถ€ํ„ฐ ์˜ํ–ฅ์„ ๋ฐ›์•„์„œ ํ•จ์ˆ˜ํ˜•, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ํ˜ผ์žฌ๋˜์–ด ์žˆ์Œ.

JavaScript : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
EcmaScript : ์–ธ์–ด ๋ช…์„ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„
ECMA : European Computer Manufacturers Association์˜ ์ค€๋ง๋กœ์„œ ์‚ฌ์šฉ๋˜๋‹ค๊ฐ€ ๊ตญ์ œ์  ํ™•์žฅ์œผ๋กœ ์ค€๋ง๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ


๋ฌธ๋ฒ•

  • '===' 3์ค‘ ๋“ฑํ˜ธ๋กœ ๋น„๊ต. ๋น„๊ต์‹œ์—๋Š” ์—„๊ฒฉํ•™ ๋น„๊ต๋ฅผ ํ•˜๋Š” === ์‚ฌ์šฉ์„ ๊ถŒ์žฅ.

  • ์„ธ๋ฏธ์ฝœ๋ก (;)์€ ์˜ต์…˜์ด์ง€๋งŒ ์‚ฌ์šฉํ•˜๋Š”๊ฑธ ๊ถŒ์žฅ.

  • ์›์‹œ ๊ฐ’ (Primitive type)
    Boolean, ์ˆซ์ž, ๋ฌธ์ž์—ด, undefined, null

    • ๋น„๊ต์‹œ ์‹ค์ œ ๊ฐ’์œผ๋กœ ๋น„๊ต
    • ํ”„๋กœํผํ‹ฐ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€, ํ•ญ์ƒ ๋ถˆ๋ณ€.
    • ํ™•์žฅ์ด ๊ฐ€๋Šฅ

    undefined : ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜, ์ƒ๋žต๋œ ๋งค๊ฐœ๋ณ€์ˆ˜, ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํผํ‹ฐ๋“ฑ์„ ํ‘œํ˜„
    null : ๊ฐ’์ด ์—†์Œ, ๊ฐ’์ด ์•„๋‹Œ ๊ฐ’, ๊ฐ์ฒด๊ฐ€ ์•„๋‹˜๋“ฑ์„ ํ‘œํ˜„

    false, 0, NaN : ๋ชจ๋‘ false๋กœ ์ทจ๊ธ‰ํ•จ
    NaN (Not a Number) : ์—๋Ÿฌ ๊ฐ’
    Infinity : ์—๋Ÿฌ๋กœ ๋ฐœ์ƒ๋˜๋Š” ๊ฐ’, NaN์„ ์ œ์™ธํ•œ ์–ด๋–ค ์ˆซ์ž๋ณด๋‹ค ํฌ๊ณ , -Infinity๋Š” NaN์„ ์ œ์™ธํ•œ ์–ด๋–ค ์ˆซ์ž๋ณด๋‹ค ์ž‘๋‹ค

  • ์›์‹œ ๊ฐ’์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๋ชจ๋‘ ๊ฐ์ฒด
    { firstName : 'Jane' }, [ 'apple, 'bananan' ]

    • ๋น„๊ต์‹œ์— ์ฐธ์กฐ๋กœ ๋น„๊ต
    • ํ”„๋กœํผํ‹ฐ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•จ

ํ…Œํฌ๋‹‰

  • undefined์ธ์ง€ null์ธ์ง€ ์ฒดํฌํ•  ๋•Œ

    if (x !== undifined && x !== null) ...
  • ๋ฌธ์ž์—ด์— ๋“ค์–ด ์žˆ๋Š” ์ˆซ์ž๋ฅผ ๋‹ค๋ฃฐ ๋•Œ (๊ฐ’ x๊ฐ€ ์ˆซ์ž์ธ์ง€ ๋ฌธ์ž์—ด์ธ์ง€ ํ™•์‹ค์น˜ ์•Š์„ ๋•Œ)

    if (Number(x) === 123) ...
  • ๋ž˜ํผ ์ธ์Šคํ„ด์Šค์™€ ์›์‹œ ๊ฐ’ ๋น„๊ต (๋™๋“ฑ์—ฐ์‚ฐ์ž๋กœ ๋น„๊ต)

    'abc' == new String('abc')
    > true
  • ๊ธฐ๋ณธ ๊ฐ’ ์ œ๊ณตํ•˜๊ธฐ

    • ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ธฐ๋ณธ ๊ฐ’
      function saveText(text) {
          text = text || '';
      }
    • ํ”„๋กœํผํ‹ฐ ๊ธฐ๋ณธ ๊ฐ’
      setTitle(options.title || 'Untitled');
    • ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ๋ฐ˜ํ™˜๊ฐ’
      // str์— regex๊ฐ€ ๋ช‡ ๋ฒˆ ์ผ์น˜ํ•˜๋Š”์ง€ ์„ผ๋‹ค
      // match๊ฐ€ ๋ฐฐ์—ด ๋˜๋Š” null์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ null์ธ ๊ฒฝ์šฐ ๋นˆ ๋ฐฐ์—ด์˜ length๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•œ๋‹ค
      function countOccurrences(regex, str) {
          return (str.macth(regex) || []).length;
      }
  • ์˜ˆ์™ธ์ฒ˜๋ฆฌ์‹œ Error() ์ƒ์„ฑ์ž ์‚ฌ์šฉ

    if (somethingBadHappened) {
        throw new Error('Something bad happened');
    }
  • IIFE(Immediately Invoked Function Expressions)์˜ ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ (์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ)

    • ์ฆ‰์‹œ ํ˜ธ์ถœ๋จ, ๋ฐ˜๋“œ์‹œ ํ‘œํ˜„์‹์ด์–ด์•ผ ํ•จ, ์„ธ๋ฏธ์ฝœ๋ก ์„ ๋ถ™์—ฌ์•ผํ•จ (ํ˜ธ์ถœ)
    (function () { // IIFE ์‹œ์ž‘
                   // IIFE ๋‚ด๋ถ€
    }());          // IIFE ๋

์กฐ์–ธ

  • ๋ž˜ํผ ๊ฐ์ฒด๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ๋ฌธ์ž์—ด์€ ์‚ฌ์šฉ์‹œ ํ™€๋”ฐ์˜ดํ‘œ('')๋กœ ๊ฐ์‹ธ์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.
  • ํ•จ์ˆ˜ ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€๋‹ค.
  • ๋ฉ”์„œ๋“œ ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€๋‹ค.
  • ์ƒ์„ฑ์ž ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€๋‹ค.
  • ๋ฐฐ์—ด์—์„œ๋Š” for-in์„ ์“ฐ์ง€๋งˆ๋ผ. ํ”„๋กœํผํ‹ฐ ํ‚ค๋„ ์ˆœํšŒ ๋Œ€์ƒ์ด๋ฏ€๋กœ for, forEach๋ฅผ ์“ฐ๋Š” ํŽธ์ด ๋‚ซ๋‹ค.
  • ๊ฐ์ฒด์—์„œ for-in์„ ์“ธ ๋•Œ๋„ ์ฃผ์˜ํ•˜๋ผ. ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ƒ์†๋œ ํ”„๋กœํผํ‹ฐ๋„ ํ•ด๋‹นํ•œ๋‹ค.
  • with๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์งง๊ณ  ์ผ์‹œ์ ์ธ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋ผ.
  • ์ด๋ฆ„ ๋ถ™์€ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์˜ ์ด๋ฆ„์€ ํ•จ์ˆ˜ ํ‘œํ˜„์‹ ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค (์žฌ๊ท€ ๊ตฌ์กฐ์—์„œ ์œ ์šฉ)
  • ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ๋Š” ํ•จ์ˆ˜ ์„ ์–ธ ์ „์— ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. (Hoisting)
  • ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ ์ „์— ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ, ๊ฐ’์ด ์—†์„ ์ˆ˜ ์žˆ๋‹ค (undefined)
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ์‹œ์— ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ •๋ณด๋Š” arguments ๊ฐ์ฒด์— ๋‹ด๊ธด๋‹ค.
  • ํด๋กœ์ €๋Š” ๋งŒ๋“ค์–ด์ง„ ์Šค์ฝ”ํ”„์™€ ์—ฐ๊ฒฐ๋œ ์ฑ„ ์กด์žฌํ•˜๋Š” ํ•จ์ˆ˜๋‹ค.
  • ํฌ๊ฒŒ ๋ณด๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋Š” ๋ชจ๋‘ ๋ฌธ์ž์—ด๊ณผ ๊ฐ’์œผ๋กœ ๋˜์–ด ์žˆ๋Š”(ํ‚ค-๊ฐ’ ์Œ) ๋งต(Dictionary)์ด๋‹ค.
  • ๊ฐ์ฒด์— ๋“ค์–ด์žˆ๋Š” ํ‚ค-๊ฐ’ ์Œ์„ ํ”„๋กœํผํ‹ฐ๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๋ฐ, ๋ฉ”์„œ๋“œ๋Š” ๊ฐ’์ด ํ•จ์ˆ˜์ธ ํ”„๋กœํผํ‹ฐ์ด๋‹ค.
  • delete ์—ฐ์‚ฐ์ž์˜ ์‚ฌ์šฉ์€ ํ”ผํ•ด๋ผ. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์ธ์Šคํ„ด์Šค์˜ ๋ณ€๊ฒฝ(ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€ ์ œ๊ฑฐ)๊ฐ€ ์—†์„๋•Œ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ๋‹ค. ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์ตœ์ ํ™”๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.

Clone this wiki locally