๐Ÿšฉvar VS let

var์™€ let์˜ ์—ฌ๋Ÿฌ ์ฐจ์ด์  ์ค‘ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ โ€œBLOCKโ€ Scope๋‚ด์—์„œ ์ œ์ผ ๋‘๋“œ๋Ÿฌ์ง„๋‹ค.

โœ

var v0 = "G-v0";
let l0 = "s-l0";
console.log(v0, l0);

v0 โ†’ Global Scope์— ์ €์žฅ

l0 โ†’ Script Scope์— ์ €์žฅ

โœ

var v0 = "G-v0";
let l0 = "s-l0";

{ var v0 = 'Block-v0';
	let l0 = 'Block-l0';
	console.log(v0, lo); //Block-v0 Block-l0
}
console.log(v0, lo); //Block-v0 s-l0

Untitled

์ฒซ๋ฒˆ์งธ let์œผ๋กœ ์„ ์–ธํ•œ l0๋Š” Script Scope์— ์ €์žฅ, ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ l0๋Š” Block Scope์— ์ €์žฅ๋œ๋‹ค.

๋”ฐ๋ผ์„œ letํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ ๊ฒฝ์šฐ,

ํ•จ์ˆ˜๋‚ด๋ถ€, ๋ธ”๋ก๋‚ด๋ถ€์—์„œ๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  Global Execute์—๋Š” ์˜ํ–ฅ์ด ์—†๋‹ค.

๋ฐ˜๋ฉด, var์˜ ๊ฒฝ์šฐ

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋Š” Local Scope์— ์ €์žฅ๋˜์ง€๋งŒ,

Global Execute์—์„œ ์‹คํ–‰

Global Execute์—์„œ ์‹คํ–‰

Block๋‚ด๋ถ€์—์„œ ์‹คํ–‰

Block๋‚ด๋ถ€์—์„œ ์‹คํ–‰

๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋œ ๊ฒฝ์šฐ, Global Scope์— ์ €์žฅ ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โœ ๋ธ”๋ก์˜ ์˜ˆ์‹œ

์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธโ€ฆ