๐Ÿ“Œ4์ฃผ์ฐจ์—๋Š” JS์˜ ์ด๋ฒคํŠธ ์†์„ฑ๋“ค๊ณผ ๋ชจ๋˜์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ์ง‘์ค‘์ ์œผ๋กœ ํ•™์Šตํ•˜์˜€๋‹ค.
  4์ฃผ์ฐจ ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋งˆ์น˜๊ณ  ๋Š๋‚€์ ์€ "์ •๋ง ๋‹ค์–‘ํ•œ ํ”„๋กœํผํ‹ฐ๋“ค์ด ์žˆ๊ณ  ํ•™์Šต ์™ธ์—๋„ ์ ‘ํ•ด๋ณด์ง€ ๋ชปํ•œ 
  ์ˆ˜ ๋งŽ์€ ํ”„๋กœํผํ‹ฐ๋“ค์ด ์กด์žฌํ•˜๊ณ  ์žˆ๊ณ  ๊พธ์ค€ํžˆ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๊ณ ์žˆ๋„ค." ๋ผ๋Š”๊ฑธ ์•Œ๊ฒŒ๋˜์—ˆ๊ณ ,
  "๊พธ์ค€ํžˆ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋งŒํผ ๊พธ์ค€ํžˆ ๋”ฐ๋ผ๊ฐ€์•ผ๊ฒ ๊ตฌ๋‚˜."
   ๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. 
   ์„œ๋ก ์ด ๊ธธ์—ˆ๋‹ค.. 4์ฃผ์ฐจ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ 2๊ฐ€์ง€ ์ฃผ์ œ๋ฅผ ๋ฐ›์•˜๋‹ค.

var, let, const ๋ฅผ ์ค‘๋ณต ์„ ์–ธ ํ—ˆ์šฉ, ์Šค์ฝ”ํ”„, ํ˜ธ์ด์ŠคํŒ… ๊ด€์ ์—์„œ ์„œ๋กœ ๋น„๊ตํ•ด ์ฃผ์„ธ์š”.

์œ„ ๋‚ด์šฉ์„ ํ†ตํ•ด var let const ์— ๋Œ€ํ•ด ๋น„๊ต๋ฅผ ํ•ด๋ณด์ž.

๐Ÿ“Œ ์ค‘๋ณต ์„ ์–ธ ํ—ˆ์šฉ

 <script>
var name = "code-it";

console.log(name); // code-it

var name = "pjw";

console.log(name); //pjw
</script>

์œ„์˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด name์„ ์ค‘๋ณตํ•ด์„œ ์„ ์–ธํ•ด๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„์น˜ ์•Š๊ฒŒ ๋ณ€์ˆ˜๋ช…์„ ๋˜‘๊ฐ™์ด ์„ ์–ธํ•˜๊ณ 
๊ฐ’์„ ์žฌํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
let๊ณผ const๋Š” ๊ฐ™์€ ์Šค์ฝ”ํ”„ ๋‚ด์— ์ค‘๋ณต ์„ ์–ธ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
let๊ณผ const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์ค‘๋ณต์„ ์–ธ์„ํ•˜๋ฉด ์ฐธ์กฐ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๐Ÿ“Œ ํ•จ์ˆ˜๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„

var : ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„
let ๊ณผ const : ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„
var๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์ฝ”๋“œ ๋ธ”๋ก๋งŒ ์ง€์—ญ ์Šค์ฝ”ํ”„๋กœ ์ธ์ •๋œ๋‹ค.

 <script>
var i = 10;

for (var i =0; i<3; i++){
    console.log(i) // 0 1 2
}

console.log(i); // 3
</script>

for๋ฌธ ์•ˆ์—์„œ๋„ var ํ‚ค์›Œ๋“œ๋Š” ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋˜์–ด ๊ธฐ์กด์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
var ํ‚ค์›Œ๋“œ๊ฐ€ ์•„๋‹Œ let์ด๋‚˜ const ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ์„ ํ•œ๋‹ค๋ฉด
Uncaught SyntaxError : Identifier 'i' has already been declared ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๐Ÿ“Œ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…

ํ˜ธ์ด์ŠคํŒ…์ด๋ž€?
๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์ด ์ฝ”๋“œ์˜ ์„ ๋‘๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ณ ์œ ์˜ ํŠน์ง•์„ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์ด๋ผํ•œ๋‹ค. - ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive, p43
var ํ‚ค์›Œ๋“œ๋Š” ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์— ์˜ํ•ด ์„ ์–ธ๋ฌธ์ด ์Šค์ฝ”ํ”„์˜ ์œ„์ชฝ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค.
์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€๋Š” ์•Š์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์— ๋งž์ง€ ์•Š๊ณ  ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒํ•  ์—ฌ์ง€๋ฅผ ๋‚จ๊ธด๋‹ค.

let์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์ฐธ์กฐ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๋ฒ„์ „ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋ฉด var๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฑธ ๊ถŒ์žฅํ•œ๋‹ค.
๋ณ€์ˆ˜์˜ ์žฌํ• ๋‹น์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ let์„ ์‚ฌ์šฉํ•œ๋‹ค.
๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ์—๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žฌํ• ๋‹น์ด ํ•„์š”ํ•œ์ง€ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๊ทธ๋ƒฅ const๋ฅผ ์“ฐ๊ณ  ์žฌํ• ๋‹น์ด ํ•„์š”ํ•˜๋ฉด ๊ทธ๋•Œ let์œผ๋กœ ๋ฐ”๊ฟ”๋„ ๋Šฆ์ง€ ์•Š๋‹ค.

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ๋ธŒ๋ผ์šฐ์ € ๋™์ž‘ ์›๋ฆฌ ์š”์•ฝ

1๏ธโƒฃ ์ž…๋ ฅ ๋ฐ›๊ธฐ: ์›น ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅ
2๏ธโƒฃ DNS ํ™•์ธ: ์ฃผ์†Œ๋ฅผ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜
3๏ธโƒฃ ์„œ๋ฒ„์— ์š”์ฒญ: ์›น ํŽ˜์ด์ง€๋ฅผ ์„œ๋ฒ„์— ์š”์ฒญ
4๏ธโƒฃ ์„œ๋ฒ„ ์‘๋‹ต: ์„œ๋ฒ„๊ฐ€ ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ ์ „์†ก
5๏ธโƒฃ HTML ํ•ด์„: ๋ฐ›์€ HTML ์ฝ”๋“œ ํ•ด์„
6๏ธโƒฃ ํ™”๋ฉด์— ํ‘œ์‹œ: HTML์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ™”๋ฉด์— ํ‘œ์‹œ
7๏ธโƒฃ CSS ์Šคํƒ€์ผ๋ง: ์Šคํƒ€์ผ ์ ์šฉํ•ด์„œ ์Šคํƒ€์ผ๋ง
8๏ธโƒฃ JavaScript ์‹คํ–‰: ๋™์  ์ฝ˜ํ…์ธ ๋ฅผ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰
9๏ธโƒฃ DOM ๋งŒ๋“ค๊ธฐ: ํŽ˜์ด์ง€์˜ ๊ฐ์ฒด ๋ชจ๋ธ ์ƒ์„ฑ
๐Ÿ”Ÿ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๊ธฐ: ์ตœ์ข…์ ์œผ๋กœ ์›น ํŽ˜์ด์ง€ ํ‘œ์‹œ

๐Ÿ‘๐Ÿป Reference

var ํ‚ค์›Œ๋“œ๋ฅผ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š” ์ด์œ 

๋ธŒ๋ผ์šฐ์ €๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฐ€

profile
โ˜„๏ธ

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