ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JavaScript/ES6] let ํ‚ค์›Œ๋“œ(var์™€ ๋น„๊ต)
    javascript 2019. 3. 29. 10:14

    @since 2019-03-29

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

     

    ๋ณ€์ˆ˜๋Š” ์ง€์—ญ(๋กœ์ปฌ)๋ณ€์ˆ˜์™€ ์ „์—ญ(๊ธ€๋กœ๋ฒŒ)๋ณ€์ˆ˜๋กœ ํฌ๊ฒŒ ๊ตฌ๋ถ„์„ ์ง“์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์Šค์ฝ”ํ”„(scope, ๋ฒ”์œ„) ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

    • ์ง€์—ญ(๋กœ์ปฌ)๋ณ€์ˆ˜ : ํ•จ์ˆ˜ ๋˜๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์Šค์ฝ”ํ”„๋กœ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์˜๋„์ด๋ฉฐ,

    • ์ „์—ญ(๊ธ€๋กœ๋ฒŒ)๋ณ€์ˆ˜ : ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์˜๋„์ž…๋‹ˆ๋‹ค.

    ์Šค์ฝ”ํ”„(scope, ๋ฒ”์œ„)๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋‚˜์˜จ ๊น€์— var ํ‚ค์›Œ๋“œ์™€ let, ๊ทธ๋ฆฌ๊ณ  const ํ‚ค์›Œ๋“œ๊นŒ์ง€ ์Šค์ฝ”ํ”„(scope, ๋ฒ”์œ„)๋ฅผ ์ž ์‹œ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    • var ํ‚ค์›Œ๋“œ์˜ ์Šค์ฝ”ํ”„๋Š” ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„์ด๋ฉฐ,

    • let, conse ํ‚ค์›Œ๋“œ์˜ ์Šค์ฝ”ํ”„๋Š” ๋ธ”๋ก ์Šค์ฝ”ํ”„์ž…๋‹ˆ๋‹ค.

    ์ญ? ์ด๋ ‡๊ฒŒ๋งŒ ๋ณด๋ฉด ์ €๋„ ํ™• ์™€๋‹ฟ์ง€๋Š” ์•Š๋„ค์š”. ๋ฐ‘์— ์ข€ ๋” ์„ค๋ช…์„ ์ด์–ด๋‚˜๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    var์™€ ๋ฌด์—‡์ด ๋‹ค๋ฅธ๊ฐ€?

    let ํ‚ค์›Œ๋“œ๋Š” var ํ‚ค์›Œ๋“œ์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

     

    1. ํ•จ์ˆ˜ ์•ˆ์— ์ž‘์„ฑํ•œ let ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์Šค์ฝ”ํ”„์ž…๋‹ˆ๋‹ค.

    2. ํ•จ์ˆ˜ ์•ˆ์— if(a = b) { let sports = "์ถ•๊ตฌ" } ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์„ ๋•Œ, sports ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์Šค์ฝ”ํ”„๊ฐ€ ์•„๋‹ˆ๋ผ if ๋ฌธ์˜ ๋ธ”๋ก { }์ด ์Šค์ฝ”ํ”„์ž…๋‹ˆ๋‹ค.

    3. ๋ธ”๋ก { } ๋ฐ–์— ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์–ด๋„ ์Šค์ฝ”ํ”„๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ๋ณ€์ˆ˜ ๊ฐ๊ฐ์— ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ณ€์ˆ˜ ๊ฐ’์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

    4. ๋ธ”๋ก ์•ˆ์— ๋ธ”๋ก์„ ๊ณ„์ธต์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๊ฐ๊ฐ์˜ ๋ธ”๋ก์ด ์Šค์ฝ”ํ”„์ž…๋‹ˆ๋‹ค.

    5. ๊ฐ™์€ ์Šค์ฝ”ํ”„์—์„œ ๊ฐ™์€ ์ด๋ฆ„์˜ let ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    6. let ๋ณ€์ˆ˜๋Š” ํ˜ธ์ด์ŠคํŒ…(hoisting)๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

     

    let ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์€ ์Šค์ฝ”ํ”„์ด๋ฉฐ ๊ทธ์ค‘์—์„œ๋„ ๋ธ”๋ก ์Šค์ฝ”ํ”„๊ฐ€ ๋‹๋ณด์ž…๋‹ˆ๋‹ค.

    ๋ธ”๋ก ์Šค์ฝ”ํ”„์˜ ๊ธฐ์ค€์€ ๋ธ”๋ก์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ค‘๊ด„ํ˜ธ { }์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก { } ์•ˆ๊ณผ ๋ฐ–์˜ ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ๊ฐ™๋”๋ผ๋„ ์Šค์ฝ”ํ”„๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๊ณ  ๊ฐ ๋ณ€์ˆ˜์— ํ• ๋‹น๋œ ๊ฐ’์ด ๋Œ€์ฒด๋˜์ง€ ์•Š๊ณ  ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

    ์ถœ์ฒ˜ ๋„์„œ : ECMAScript 6 - ๊น€์˜๋ณด(http://www.yes24.com/Product/goods/35254611)

     

     

    let๊ณผ var์˜ ๋น„๊ต

    ์šฐ์„  ์Šค์ฝ”ํ”„์™€๋Š” ์กฐ๊ธˆ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋™์ผํ•œ ์ฝ”๋“œ์— ํ‚ค์›Œ๋“œ๋งŒ ๋ณ€๊ฒฝํ•˜์—ฌ ์‹คํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    (Chrome(Web Browser)์˜ DevTools์—์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.)

    โ–ฒ var ํ‚ค์›Œ๋“œ
    โ–ฒ  let ํ‚ค์›Œ๋“œ

    ์œ„์— ์‚ฌ์ง„์€ DevTools์—์„œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

    (์ถœ์ฒ˜ ๋„์„œ์˜ ์˜ˆ์ œ ์ค‘ ์ผ๋ถ€)

     

    ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‚˜์˜ฌ๊นŒ์š”?

    โ–ฒ var ํ‚ค์›Œ๋“œ ๊ฒฐ๊ณผ
    โ–ฒ let ํ‚ค์›Œ๋“œ ๊ฒฐ๊ณผ

    let์˜ ์Šค์ฝ”ํ”„์— ์กฐ๊ธˆ ๋” ํฌ์ปค์Šค๋ฅผ ๋‘๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณธ๋‹ค๋ฉด ์œ„์— ์ž‘์„ฑํ–ˆ๋˜ let์˜ ํŠน์ง•์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

    ์ด์   ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„์™€ ๋ธ”๋ก ์Šค์ฝ”ํ”„์˜ ์ฐจ์ด์ ์ด ๋ˆˆ์— ๋ณด์ด์‹œ๋‚˜์š”? ES6๋กœ๋งŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด var๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ๋งŽ์€ ๋ถ„๋“ค์ด ๋ง์”€ํ•ด์ฃผ์‹ญ๋‹ˆ๋‹ค. ํ‰์†Œ์— ํ† ์ด ํ”„๋กœ์ ํŠธ๋‚˜ ๊ฐ„๋‹จํ•œ ์†Œ์Šค๋ฅผ ์งค ๋•Œ์— const์™€ let์„ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”.

    var๋Š” ์ž ์‹œ ๋„ฃ์–ด๋‘์‹œ๊ณ .

     

    ์ „๋ฌธ์ ์œผ๋กœ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๊ฐ€๋ฅด์น˜๊ธฐ ์œ„ํ•ด, ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” ํฌ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๊ธฐ์— ์ด ๋‚ด์šฉ๋งŒ์œผ๋กœ ์•Œ๊ณ ์ž ํ•˜๋Š” ๊ฒƒ๋“ค์ด ๋ถ€์กฑํ•˜์‹œ๋‹ค ํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ ๊ด€๋ จํ•˜์—ฌ ์ž˜ ์ •๋ฆฌ๋œ ๋ธ”๋กœ๊ทธ๊ฐ€ ์žˆ์–ด ์•ˆ๋‚ดํ•ด๋“œ๋ฆด๊นŒ ํ•˜๋‹ค๊ฐ€ ๊ตฌ๊ธ€๋ง 3์ดˆ๋ฉด ๋‚˜์˜ค๋Š” ๋‚ด์šฉ๋“ค์ด๊ณ , ๋ธ”๋กœ๊ทธ๋“ค์ด๊ธฐ์— ๊ตฌ๊ธ€๋ง์„ ๋” ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

     

    ๋Œ“๊ธ€

Posted by Bejerry.