๐Ÿ“– ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜

c_yjยท2022๋…„ 6์›” 23์ผ
0

DeepDive

๋ชฉ๋ก ๋ณด๊ธฐ
1/42
post-thumbnail

๐Ÿ“– ๋ณ€์ˆ˜๋ž€?

๋ณ€์ˆ˜๋Š” ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ™•๋ณดํ•œ ๋ฉ”๋กœ๋ฆฌ ๊ณต๊ฐ„ ์ž์ฒด ๋˜๋Š” ๊ทธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ถ™์ธ ์ด๋ฆ„์„ ๋งํ•œ๋‹ค.
๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์ฐธ์กฐํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ, ๊ฐ’์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ƒ์ง•์ ์ธ ์ด๋ฆ„์ด๋‹ค.

โœ”๏ธ ๋ณ€์ˆ˜์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

var UserId = 1;
var userName = 'Lee';

// ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด ๊ฐ™์€ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 
// ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ํ•˜๋‚˜๋กœ ๊ทธ๋ฆ…ํ™”ํ•ด์„œ ํ•˜๋‚˜์˜ ๊ฐ’์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

var user = { id: 1, name: 'Lee'};

var users = [
    {id: 1, name: 'Lee'},
    {id: 2, name: 'Kim'}
]

โœ”๏ธ ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ํ• ๋‹น(๋Œ€์ž…,์ €์žฅ)์ด๋ผ ํ•˜๊ณ , ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์„ ์ฝ์–ด ๋“ค์ด๋Š” ๊ฒƒ์„ ์ฐธ์กฐ๋ผํ•œ๋‹ค.

โœ”๏ธ ๋ณ€์ˆ˜ ์„ ์–ธ

๋ณ€์ˆ˜์„ ์–ธ์ด๋ž€ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ข€ ๋” ์ž์„ธํžˆ ๋งํ•˜๋ฉด ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ๋ณ€์ˆ˜ ์ด๋ฆ„๊ณผ ํ™•๋ณด๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์ฃผ์†Œ๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ณ€์ˆ˜ ์„ ์–ธ์— ์˜ํ•ด ํ™•๋ณด๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ํ™•๋ณด๊ฐ€ ํ•ด์ œ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ˆ„๊ตฌ๋„ ํ™•๋ณด๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋„๋ก ๋ณดํ˜ธ๋˜๋ฏ€๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ด ๋ฐ˜๋“œ์‹œ ์„ ์–ธ์ด ํ•„์š”ํ•˜๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋–„๋Š” var, let, const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

โœ”๏ธ ๋ณ€์ˆ˜ ์„ ์–ธ์˜ ์‹คํ–‰ ์‹œ์ ๊ณผ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…

console.log(score) ; // undefined
var score; // ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ

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

โœ”๏ธ ๊ฐ’์˜ ํ• ๋‹น

๋ณ€์ˆ˜ ์„ ์–ธ์€ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์ธ ๋Ÿฐํƒ€์ž„ ์ด์ „์— ๋จผ์ € ์‹คํ–‰๋˜์ง€๋งŒ ๊ฐ’์˜ ํ• ๋‹น์€ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์ธ ๋Ÿฐํƒ€์ž„์— ์‹คํ–‰๋œ๋‹ค.

console.log(score); // undefined

var score; // 1 ๋ณ€์ˆ˜ ์„ ์–ธ
score = 80; 2 ๊ฐ’์˜ ํ• ๋‹น

console.log(score); // 80

โœ”๏ธ ๊ฐ’์˜ ์žฌํ• ๋‹น

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

์ถœ์ฒ˜ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep dive.

profile
FrontEnd Developer

0๊ฐœ์˜ ๋Œ“๊ธ€