Notice
Recent Posts
Recent Comments
Link
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

eazyseon

15์žฅ let,const ํ‚ค์›Œ๋“œ์™€ ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ ๋ณธ๋ฌธ

๐Ÿ“•์ฑ…/๋”ฅ๋‹ค์ด๋ธŒ

15์žฅ let,const ํ‚ค์›Œ๋“œ์™€ ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„

eazyseon 2023. 11. 21. 23:51
๋ฐ˜์‘ํ˜•


15.1 var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ๋ฌธ์ œ์  
-๋ณ€์ˆ˜ ์ค‘๋ณต ์„ ์–ธ ํ—ˆ์šฉ 
var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์ค‘๋ณต ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 
์ดˆ๊ธฐํ™”๋ฌธ์ด ์—†๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์€ ๋ฌด์‹œ๋œ๋‹ค.  ์—๋Ÿฌ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

var x = 1
var y = 1;

var x = 100;
var y;//์ดˆ๊ธฐํ™”๋ฌธ์ด ์—†๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์€ ๋ฌด์‹œ๋œ๋‹ค. 

console.log(x);//100
console.log(y);//1


 -ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ 
var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์˜ค๋กœ์ง€ ํ•จ์ˆ˜์˜ ์ฝ”๋“œ ๋ธ”๋ก๋งŒ์„ ์ง€์—ญ ์Šค์ฝ”ํ”„๋กœ ์ธ์ •ํ•œ๋‹ค.  

๊ทธ๋ž˜์„œ if๋ฌธ์ด๋‚˜ for๋ฌธ์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค. 

- ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…
var ํ‚ค์›Œ๋“œ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์ด ์Šค์ฝ”ํ”„์˜ ์„ ๋‘๋กœ 
๋Œ์–ด ์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์„ ์–ธ๋ฌธ ์ด์ „์— ์ฐธ์กฐํ•˜๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

15.2 let ํ‚ค์›Œ๋“œ 
-๋ณ€์ˆ˜ ์ค‘๋ณต ์„ ์–ธ ๊ธˆ์ง€ 
let์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ค‘๋ณต ์„ ์–ธํ•˜๋ฉด ๋ฌธ๋ฒ• ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

let a = 100;
let a = 200;//SyntaxError: Identifier 'a' has already been declared.


-๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„
let์œผ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ฝ”๋“œ ๋ธ”๋ก์„ ์ง€์—ญ ์Šค์ฝ”ํ”„๋กœ ์ธ์ •ํ•œ๋‹ค. 

let foo = 1;
{
  let foor = 2;
  let bar = 3;
}
console.log(foo); //1
console.log(bar);


์ „์—ญ์—์„œ ์„ ์–ธ๋œ foo์™€ ์ฝ”๋“œ ๋ธ”๋ก ๋‚ด์˜ foo๋Š” ๋‹ค๋ฅธ ๋ณ„๊ฐœ์˜ ๋ณ€์ˆ˜๋‹ค.
ํ•จ์ˆ˜ ๋‚ด์˜ ์ฝ”๋“œ ๋ธ”๋ก์€ ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„์— ์ค‘์ฒฉ๋œ๋‹ค. 

- ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ… 
let ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. 

console.log(foo);//ReferenceError: foo is not defined
let foo;


let ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์ง„ํ–‰๋œ๋‹ค. 
๋Ÿฐํƒ€์ž„ ์ด์ „์— ์„ ์–ธ๋‹จ๊ณ„๊ฐ€ ์‹คํ–‰๋˜์ง€๋งŒ ์ดˆ๊ธฐํ™”๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ์‹คํ–‰๋œ๋‹ค. 

console.log(foo);//ReferenceError: foo is not defined
let foo;
console.log(foo)//undefined


์Šค์ฝ”ํ”„์˜ ์‹œ์ž‘ ์ง€์ ๋ถ€ํ„ฐ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„ ์‹œ์ž‘ ์ง€์ ๊นŒ์ง€ ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋‹ค. 
์ด ๊ตฌ๊ฐ„์„ ์ผ์‹œ์  ์‚ฌ๊ฐ์ง€๋Œ€ (TDZ)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

15.3 const ํ‚ค์›Œ๋“œ 

const ํ‚ค์›Œ๋“œ๋Š” ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

 

- ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”
const ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. 
 
-์žฌํ• ๋‹น ๊ธˆ์ง€ 

const๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์žฌํ• ๋‹น์ด ๊ธˆ์ง€๋œ๋‹ค. 

const foo = 1;
foo = 2;//TypeError: Assignment to constant variable.

 

- const ํ‚ค์›Œ๋“œ์™€ ๊ฐ์ฒด 

const ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์— ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•œ ๊ฒฝ์šฐ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์›์‹œ ๊ฐ’์€ ์žฌํ• ๋‹น ์—†์ด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ ๊ฐ์ฒด๋Š” ์žฌํ• ๋‹น ์—†์ด๋„ ์ง์ ‘ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

const person = {
  name : 'Lee'
};

person.name = 'Kim';

console.log(person);//{ name: 'Kim' }

 

 

์ผ๋‹จ const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ž!

๋ฐ˜์‘ํ˜•
Comments