๐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