๊ธฐ์ดˆ Java Script

๋ณ€์ˆ˜(Variable)๋Š” ๋ฌด์—‡์ธ๊ฐ€? ๐Ÿ’ป๐Ÿคท๐Ÿฟ‍โ™‚๏ธ [Java Script]

Hot Dobby 2020. 8. 5. 18:45
๐Ÿถ# ๋ณต์Šต์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ธ€์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ๊ณผ ์ฝ”๋ฉ˜ํŠธ ์†Œํ†ต ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. #๐Ÿถ

#JS ๋ณ€์ˆ˜, #๋ณ€์ˆ˜ ๋œป, # ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜, #๋ณ€์ˆ˜ ๊ธฐ์ดˆ

๋ณ€์ˆ˜ :  ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ช…๋ช…๋œ ์œ„์น˜๋ฅผ ๋ณ€์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. 

Input์ด ์žˆ์–ด์•ผ Output์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด, ๋‚ด๊ฐ€ ์ง‘์–ด๋†“๊ณ  ์‹ถ์€ ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋‹ด์•„์„œ ๋„ฃ๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ•์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ข‹๊ฒ ์ฃ ? ๊ทธ๋Ÿผ ๋ณ€์ˆ˜๋ฅผ ์™œ ์“ฐ๋ฉด ์ข‹์„๊นŒ์š”?

//์†Œ๊ณ ๊ธฐ์ƒ๋Ÿฌ๋“œ๋ฅผ ๋จน์—ˆ๋Š”๋ฐ ์นผ๋กœ๋ฆฌ๊ฐ€ ?? 
10 * 4 //ํƒ„์ˆ˜ํ™”๋ฌผ ์นผ๋กœ๋ฆฌ
8 * 4 //๋‹จ๋ฐฑ์งˆ ์นผ๋กœ๋ฆฌ
5 * 9 //์ง€๋ฐฉ ์นผ๋กœ๋ฆฌ 
์ด์นผ๋กœ๋ฆฌ === (10 * 4) + (8 * 4) + (5 * 9) + 'kcal'


์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์„ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด !

let carbohydrate = 4;
let protein = 4;
let fat = 9;
์ด ์นผ๋กœ๋ฆฌ === (10 * carbohydrate) + (8 * protein) + (5 * fat) + 'kal'

์œ„์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ€ป ์ดํ›„ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ์Œ์‹์˜ ์นผ๋กœ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ๋„ ์‰ฝ๊ฒ ์ฃ ? 


๋ณ€์ˆ˜ ์„ ์–ธ์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. [ let, const, var ] ๊ฐ€ ์žˆ์œผ๋ฉฐ ์œ„ 3๊ฐ€์ง€๋Š” ์žฌํ• ๋‹น์ด ๊ฐ€๋Šฅํ•œ์ง€, ์–ด๋А ๋ฒ”์œ„๊นŒ์ง€ ์ ์šฉ๋˜๋Š”์ง€์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. 

  let const var
์œ ํšจ ๋ฒ”์œ„ Effective Scope Block Scope Block Scope Function Scope
๊ฐ’์˜ ์žฌ์ •์˜ Changing  Value o x o
์žฌ์„ ์–ธ re-declaration x x o

์Œ... ๊ฐ‘์ž๊ธฐ ์™  ํ‘œ๊ฐ€ ์žˆ์ง€? ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์„ ์–ธ ๋ช…๋ น์–ด๋“ค์ด ์–ด๋– ํ•œ ํŠน์ง•์ด ์žˆ๋Š”์ง€ ์ •๋ฆฌํ•œ ํ‘œ์ž…๋‹ˆ๋‹ค.


- let์€ Block Scope ์•ˆ์—์„œ๋งŒ ์œ ํšจํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Blcok Scope๋Š” { } ์ด๋ ‡๊ฒŒ ์ค‘๊ด„ํ˜ธ ์•ˆ์— ๋‹ด๊ฒจ์ง„ ์˜์—ญ์œผ๋กœ Global Scope, ์ฆ‰ ์ „์—ญ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ๋กœ์ปฌ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ดํ›„์— ๋ด…์‹œ๋‹ค! ๐Ÿ˜‚   ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด let์œผ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ์™ธ๋ถ€ ์Šค์ฝ”ํ”„(์˜์—ญ)์—์„œ๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์ฃผ์„ธ์š”.

-const๋Š” let๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์™ธ๋ถ€ ์Šค์ฝ”ํ”„์—์„œ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  Block Scope๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!! ๐Ÿ˜จ ๊ฐ’์„ ๋ชป ๋ฐ”๊พผ๋‹ค๋ฉด ์ข€ ๋ถˆํŽธํ•˜์ง€ ์•Š๋‚˜์š”? ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค ๋ณด๋ฉด ์‹ค์ˆ˜๋กœ ๊ฐ’์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ Error๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ๊ฐ’์ด ๊ณ ์ •๋œ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค! 

-var๋Š” Fuction Scope, ์ฆ‰ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์œ ํšจํ•˜๊ธฐ ๋•Œ๋ฌธ์— var๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์ฐธ์กฐ๋ฅผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์žฌ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋””์„œ๋“  ์„ ์–ธ์„ ๋‹ค์‹œ ํ•  ์ˆ˜ ์žˆ์ฃ . ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋‹ค์‹œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ํƒ€์ด๋ฐ์ด... ๋งŽ์„๊นŒ์š”? ์‚ฌ์‹ค var๋Š” ์ด์ œ Oldํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. { } Block ๋‹จ์œ„๋กœ ์ž‘์„ฑ๋˜๋Š” ์ฝ”๋“œ์—์„œ var๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๋””๋ฒ„๊น…์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ๋„ ํŒจ๋„ํ‹ฐ๊ฐ€ ์žˆ๊ณ  ์—ฌ๋Ÿฌ๋ชจ๋กœ ์žฌ์„ ์–ธ์ด ๋˜๋Š” ํŠน์ง•์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์‹ค์ˆ˜๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 


โ— So! ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋‹ค์‹œ ์˜ฌ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ํƒ!๐Ÿ‘Œ
์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์šฐ์„ ์œผ๋กœ ํ•œ๋‹ค!