Javascript/์ด๋ก 

JavaScript | ์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ…

Kim_gorilla 2020. 6. 7. 23:54

 

๐Ÿ‘จ‍๐Ÿ’ป ์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ…

์˜ค๋Š˜์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•ˆ์—์„œ ์Šค์ฝ”ํ”„๋ผ๋Š” ์šฉ์–ด์™€ ํ˜ธ์ด์ŠคํŒ…์ด๋ผ๋Š” ์šฉ์–ด์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

Scope(์Šค์ฝ”ํ”„) ๋‹จ์–ด ๊ทธ์ž์ฒด๋ฅผ ์ง์—ญํ•˜๋ฉด ๋ฒ”์œ„๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋งํ•˜๋Š” Scope๋Š” ์–ด๋–ค ๋ฒ”์œ„๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”?

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์— ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜์—ฌ ์˜๋ฏธ๋ฅผ ๊ฐ–๋„๋ก ํ•˜๊ณ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด๋ฆ„์ด ์—†๋‹ค๋ฉด ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋Š” ๊ทธ์ € ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์ง€๋‚˜์ง€ ์•Š๊ฒŒ๋˜๊ฒ ์ฃ . ๊ทธ๋ž˜์„œ ํ”„๋กœ๊ทธ๋žจ์€ "์ด๋ฆ„: ๊ฐ’"์˜ ๋Œ€์‘ํ‘œ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋Œ€์‘ํ‘œ์˜ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ , ๋˜ ์ด๋ฆ„์„ ํ†ตํ•ด ๊ฐ’์„ ์ €์žฅํ•˜๊ณ , ๋‹ค์‹œ ๊ฐ€์ ธ์™€ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. 

 

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

 

(์ „ํ†ต์ ์ธ ๋ฐฉ์‹์ธ var ๋ณ€์ˆ˜ํ˜• ํƒ€์ž…์„ ์ด์šฉํ•˜์—ฌ ์„ ์–ธํ–ˆ๋‹ค๋ฉด, ๋ฌธ๋ฒ•์ ์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ๋‘ ๋ฒˆ์งธ ๋‚˜์˜ค๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ฒซ ๋ฒˆ์งธ ๋ณ€์ˆ˜๋ฅผ ๋ฎ์–ด์“ฐ์—ฌ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์ค‘๋ณต๋œ ๋ณ€์ˆ˜๋“ค๊ฐ„์— ์ถฉ๋Œ์ด ์ผ์–ด๋‚œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.)

// ํ˜ธ์ด์ŠคํŒ… ๋ฌธ์ œ ๋ฐœ์ƒ!
var test = "this is test";
var test = "I am test too!";

 

 

(์•„๋ž˜์˜ ์†Œ์Šค์ฝ”๋“œ๋Š” ์ด๋Ÿฌํ•œ ์ค‘๋ณต๋œ ์ด๋ฆ„์œผ๋กœ์ธํ•œ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•œ ๋ธ”๋ก๋ ˆ๋ฒจ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฌธ๋ฒ•์ ์œผ๋กœ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. )

// ์ž˜๋ชป๋œ ์†Œ์Šค์ฝ”๋“œ
let test = "this is test";
let test = "I am test too!";

๊ทธ๋ž˜์„œ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์—ฌ ๊ฐ ์–ธ์–ด๋งˆ๋‹ค "์Šค์ฝ”ํ”„"๋ผ๋Š” ๊ทœ์น™์„ ๋งŒ๋“ค์–ด ์ •์˜๋ฅผ ํ•˜์˜€๊ณ  ์—ฌ๊ธฐ์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(ES6)๋Š” ํ•จ์ˆ˜๋ ˆ๋ฒจ๊ณผ ๋ธ”๋ก๋ ˆ๋ฒจ ์˜ ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„ ๊ทœ์น™์„ ๋”ฐ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

[์Šค์ฝ”ํ”„ ๋ ˆ๋ฒจ]

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ „ํ†ต์ ์œผ๋กœ ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ฅผ ์ง€์›ํ•ด์™”๊ณ , ์–ผ๋งˆ ์ „๊นŒ์ง€๋งŒ ํ•ด๋„ ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋Š” ์ง€์›ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„์ธ var๋งŒ ์‚ฌ์šฉํ•ด ์™”์—ˆ์ฃ . ํ•˜์ง€๋งŒ ๊ฐ€์žฅ ์ตœ์‹  ๋ช…์„ธ์ธ ES6(ECMAScript 6)๋ถ€ํ„ฐ ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ฅผ ์ง€์›ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ์—ฌ๊ธฐ์„œ ๋‚˜์˜จ๊ฒƒ์ด let ๊ณผ const ์ž…๋‹ˆ๋‹ค.

 

[ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ & ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„]

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ varํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋‚˜, ํ•จ์ˆ˜ ์„ ์–ธ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ•จ์ˆ˜ ๋‚ด๋ถ€ ์ „์ฒด์—์„œ ์œ ํšจํ•œ ์‹๋ณ„์ž๊ฐ€ ๋œ๋‹ค๋Š” ์ด์•ผ๊ธฐ์ฃ .

 

ํ•จ์ˆ˜ ๋‚ด๋ถ€ ์ „์ฒด์—์„œ ์œ ํšจํ•˜๋‹ค๋Š” ์˜๋ฏธ๋Š” ๋ฐ˜๋Œ€๊ฐœ๋…์ธ ๋ธ”๋ก๊ฐœ๋…๊ณผ ๋น„๊ตํ•˜์—ฌ ์ดํ•ดํ•˜๋ฉด ์‰ฝ์Šต๋‹ˆ๋‹ค.

 

๋ธ”๋ก๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋“ค์€ ๋ธ”๋ก์•ˆ์—์„œ๋งŒ ์œ ํšจํ•œ๋ฐ, ์ด๋ฅผ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•œ๊ฒƒ์ด ์ง€์—ญ๋ณ€์ˆ˜ ์ž…๋‹ˆ๋‹ค. ์ง€์—ญ๋ณ€์ˆ˜๋Š” ํŠน์ • ๋ธ”๋ก์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜์ธ๋ฐ์š”, ํ•ด๋‹น ์ง€์—ญ(๋ธ”๋ก)์„ ๋ฒ—์–ด๋‚˜๋ฉด ์†Œ๋ฉธํ•˜์—ฌ ์ƒ์š”ํ•  ์ˆ˜ ์—†๋Š”๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•จ์ˆ˜๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง€๋Š” ํ•จ์ˆ˜๋“ค์€ ํŠน์ • ํ•จ์ˆ˜๋‚ด์—์„œ ์„ ์–ธ์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ทธ ์žฅ์†Œ๊ฐ€ if๋ฌธ ์•ˆ์ด๋“  While๋ฌธ ์•ˆ์ด๋˜๊ฐ„์— ๊ทธ ์ง€์—ญ(๋ธ”๋ก)์„ ๋ฒ—์–ด๋‚˜๋„ ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ์žฌ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

[๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„]

๊ทธ๋ ‡๋‹ค๋ฉด ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„(Lexical scope)๋Š” ๋ณดํ†ต ๋™์  ์Šค์ฝ”ํ”„(Dynamic scope)์™€ ๋งŽ์ด ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

 

๋™์  ์Šค์ฝ”ํ”„๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋Ÿฐํƒ€์ž„ ๋„์ค‘์˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋‚˜ ํ˜ธ์ถœ ์ปจํ…์ŠคํŠธ์— ์˜ํ•ด ๊ฒฐ์ •๋˜๊ณ ,

๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„์—์„œ๋Š” ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋œ ๊ทธ ๋ฌธ๋งฅ์—์„œ ๊ฒฐ์ •๋œ๋‹ค. ํ˜„๋Œ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด๋“ค์€ ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„ ๊ทœ์น™์„ ๋”ฐ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

[ํ˜ธ์ด์ŠคํŒ… ์ด๋ž€]

ํ˜ธ์ด์ŠคํŒ…(Hoisting)์„ ๋ฒˆ์—ญํ•˜๋ฉด ๋“ค์–ด์˜ฌ๋ ค ๋‚˜๋ฅด๊ธฐ, ๋Œ์–ด ์˜ฌ๋ฆฌ๊ธฐ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋งํ•˜๋Š” ํ˜ธ์ด์ŠคํŒ…๋„ ๋น„์Šทํ•œ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”๋ฐ์š” ์•„๋ž˜์˜ ๋‚ด์šฉ์„ํ†ตํ•ด ์ด๊ฒŒ ๋ฌด์Šจ ์ด์•ผ๊ธด์ง€ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋Š” ์‹คํ–‰๋˜๊ธฐ ์ „์— ํ•จ์ˆ˜ ์•ˆ์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜๊ฐ’๋“ค์„ ๋ชจ๋‘ ๋ชจ์•„์„œ ์œ ํšจ ๋ฒ”์œ„์˜ ์ตœ์ƒ๋‹จ์— ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. 

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์„œ(Parser)๊ฐ€ ํ•จ์ˆ˜ ์‹คํ–‰ ์ „ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ•œ ๋ฒˆ ํ›‘์Šต๋‹ˆ๋‹ค.
  • ํ•จ์ˆ˜ ์•ˆ์— ์กด์žฌํ•˜๋Š” ๋ณ€์ˆ˜/ํ•จ์ˆ˜ ์„ ์–ธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ์ƒํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.
  • ์œ ํšจ๋ฒ”์œ„: ํ•จ์ˆ˜ ๋ธ”๋ก "{}" ์•ˆ์—์„œ ์œ ํšจ

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

 

๋‘๊ฐœ์˜ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ํ˜ธ์ด์ŠคํŒ…์— ๋Œ€ํ•ด ์ดํ•ด๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

function foo() {
    a = 2;
    var a;
    console.log(a);
}
foo();

์œ„์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ์—๋„ ๋ฌธ๋ฒ•์ ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ์—†์–ด๋ณด์ด๊ณ , ์‹คํ–‰๊ฒฐ๊ณผ ๋˜ํ•œ ์˜ˆ์ธกํ•œ๋Œ€๋กœ 2๋ผ๋Š” ๊ฐ’์ด ์ œ๋Œ€๋กœ ์ถœ๋ ฅ์ด ๋˜์–ด์งˆ๊ฒ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์†Œ์Šค์ฝ”๋“œ์ƒ์˜ ์ˆœ์„œ๋ฅผ ์กฐ๊ธˆ ๋ฐ”๊ฟ” ์•„๋ž˜์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

function foo() {
    console.log(a);
    var a = 2;
}
foo();

๋ฌด์–ธ๊ฐ€ ์„ ์–ธํ•˜์ง€๋„ ์•Š์€ ๋ณ€์ˆ˜๋ฅผ ๋จผ์ € ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ชจ์Šต์—์„œ ๋ถ€ํ„ฐ๊ฐ€ ๋ฌธ๋ฒ•์ ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด๋ณด์ด๋Š”๋ฐ์š”.

ํ•˜์ง€๋งŒ var ๋ณ€์ˆ˜๋Š” ์•ž์„œ ์ด์•ผ๊ธฐํ–ˆ๋˜ ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜๋‚ด์—์„œ ์„ ์–ธํ•œ๊ฒƒ์€ ์„ ์–ธ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์—๋“  ์•„๋ž˜๋˜๊ฐ„์— ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ์†Œ์Šค์ฝ”๋“œ๋„ ๋˜‘๊ฐ™์ด 2๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ฌ๊นŒ์š”? ๋Œ€๋‹ต์€ ์•„๋‹ˆ์˜ค ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ๊ฒฐ๊ณผ๋กœ๋Š” undefined ๊ฐ€ ์ถœ๋ ฅ์ด ๋˜์–ด์ง€๋Š”๋ฐ์š”. ์ด ๊ฐ’์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ƒ์ˆ˜๊ฐ’์ด๋ฉฐ ์˜๋ฏธ๋กœ๋Š” "์„ ์–ธ์ด ๋˜์–ด์žˆ์ง€ ์•Š์Œ" ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ถ„๋ช… var a = 2 ๋ผ๊ณ  ์ดˆ๊ธฐํ™”๋ฅผ ํ–ˆ๋Š”๋ฐ ์™œ ์„ ์–ธ์ด ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๊ณ  ํ•˜๋Š”์ง€์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์ฝ”๋“œ๋ฅผ ์ธํ„ฐํ”„๋ฆฌํŒ… ํ•˜๊ธฐ ์ „์— ๊ทธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. var a = 2๋ฅผ ํ•˜๋‚˜์˜ ๊ตฌ๋ฌธ์œผ๋กœ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ์˜ ๋‘๊ฐœ ๊ตฌ๋ฌธ์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ด…๋‹ˆ๋‹ค.

  1. var a; (์„ ์–ธ)
  2. a = 2; (ํ• ๋‹น=์ดˆ๊ธฐํ™”)

๋ณ€์ˆ˜ ์„ ์–ธ ๋‹จ๊ณ„์™€ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๋ฅผ ๋‚˜๋ˆ„๊ณ , ์„ ์–ธ ๋‹จ๊ณ„์—์„œ๋Š” ๊ทธ ์„ ์–ธ์ด ์†Œ์Šค์ฝ”๋“œ์˜ ์–ด๋””์— ์œ„์น˜ํ•˜๋“  ํ•ด๋‹น ์Šค์ฝ”ํ”„์˜ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ฒ˜๋ฆฌํ•ด ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์„ ์–ธ๋‹จ๊ณ„๊ฐ€ ์Šค์ฝ”ํ”„์˜ ๊ผญ๋Œ€๊ธฐ๋กœ ํ˜ธ์ด์ŠคํŒ…("๋Œ์–ด์˜ฌ๋ฆผ")๋˜๋Š” ์ž‘์—…์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ฃ .

 

 

[ํ˜ธ์ด์ŠคํŒ… ๋Œ€์ƒ]

์ด๋Ÿฌํ•œ ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒ๋˜๋Š” ๋Œ€์ƒ์—๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?

 

ํ˜ธ์ด์ŠคํŒ…์€ var๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ํ•จ์ˆ˜์„ ์–ธ๋ฌธ์—์„œ๋งŒ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

  • var๋ฉด์ˆ˜/ํ•จ์ˆ˜์˜ ์„ ์–ธ๋งŒ ์œ„๋กœ ๋Œ์–ด ์˜ฌ๋ ค์ง€๋ฉฐ, ํ• ๋‹น์€ ๋Œ์–ด ์˜ฌ๋ ค์ง€์ง€ ์•Š๋Š”๋‹ค.
  • let/const ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์—์„œ๋Š” ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
    (var ๋ณด๋‹จ let ๊ณผ const๋ฅผ ์‚ฌ์šฉํ•˜์ž)
    • ํ•จ์ˆ˜ ํ‘œํ˜„์‹์ด๋ž€ ์ต๋ช…ํ•จ์ˆ˜๋“ฑ์„ ์ด์šฉํ•œ ํ•จ์ˆ˜์‚ฌ์šฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

[ํ˜ธ์ด์ŠคํŒ…์˜ ๋ฌธ์ œ]

ํ˜ธ์ด์ŠคํŒ…์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๋Š” ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๊ฒŒ ๋˜๊ณ  ์ด๋Š” ์œ ์ง€๋ณด์ˆ˜์˜ ์–ด๋ ค์›€์œผ๋กœ ์ด์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ฐธ๊ณ ์‚ฌ์ดํŠธ