์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ณ๋๋ก ์๋ฃํ ๋ช ์ํ์ง ์๋๋ค.
๋ณ์์ ์ ๋ ฅ๋๋ ๊ฐ์ ์ํด ์๋ฃํ์ด ํ๋ณ๋๊ธฐ์
์๋ ๊ฐ์ฒด๋ฅผ ์ ์ธํ ๋๋ ES5 ์ ์๋ ใvarใ๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.
Number โก๏ธ var int_data = 1;
String โก๏ธ var character1 = 'a';
Boolean โก๏ธ var result2 = true;
Array โก๏ธ var array1 = [1, 2, 3];
๊ทธ๋ฌ๋ ใvarใ ์ ๋ฌธ์ ์ ์ ์์ด์ ์ด๋ฅผ ๋ณด์ํ ใletใ๊ณผ ใconstใํค์๋๊ฐ ๋์ ๋์๋ค.
โ ๏ธ ใvarใ ์ฃผ์์ฌํญ
1. Function Scope
๋ณ์๋ฅผ ์ ์ธํ ํจ์ ๋ด์์๋ง ์ ํจํ ํจ์ ์ค์ฝํ๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ธ๋ก ์ค์ฝํ๋ฅผ ๋ฌด์ํ๋ค.
function exampleScope() {
if (true) {
var x = 10;
}
console.log(x); // x๋ ํจ์ ์ค์ฝํ์ด๋ฏ๋ก if ๋ธ๋ก ์ธ๋ถ์์๋ ์ ๊ทผ ๊ฐ๋ฅ
}
exampleScope(); // 10 ์ถ๋ ฅ
2. Hoisting
๋ณ์ ์ ์ธ์ด ํธ์ด์คํ ๋์ด, ํด๋น ์ค์ฝํ์ ์ต์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ค.
ํ๋ง๋๋ก, ๋ณ์๊ฐ ์ ์ธ๋๊ธฐ ์ ์๋ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
console.log(y); // ์๋ฌ๊ฐ ์๋ undefined ์ถ๋ ฅ
var y = 5;
console.log(y); // 5 ์ถ๋ ฅ
3. ์ฌ์ ์ธ ํ์ฉ
๋ณ์๋ ๊ฐ์ ์ค์ฝํ ๋ด์์ ์ค๋ฅ ์์ด ์ฌ๋ฌ ๋ฒ ์ ์ธํ ์ ์๋ค.
var a = 3;
var a = 6; // ์ค๋ฅ ์์ด ๋ณ์๋ฅผ ์ฌ์ ์ธํ ์ ์์
let: ๋ณ์
1. ๋ณ์
์ ์ธ ์ดํ์ ์ฌํ ๋น์ด ๊ฐ๋ฅํ๋ค.
let PI = 3.14;
PI = 3.14159;
let r;
r = 5;
2. ๋ธ๋ก ์ค์ฝํ
์ค๊ดํธ({}) ๋ด์์๋ง ์ ํจํ๋ค.
if (true) {
let PI = 3.14;
console.log(PI); // 3.14
}
console.log(PI); // ์๋ฌ
3. ํธ์ด์คํ
๋ณ์ ์ ์ธ์ด ํธ์ด์คํ ๋์ด, ํด๋น ์ค์ฝํ์ ์ต์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ค.
ํ์ง๋ง ์ด๊ธฐํ ์ ์ ๋ณ์์ ์ ๊ทผํ๋ฉด ReferenceError๊ฐ ๋ฐ์ํ๋ค.
console.log(PI);
let PI = 3.14;
const: ์์
1. ์์
์ ์ธ ์ดํ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
const PI = 3.14;
PI = 3.14159; // ์๋ฌ
const r; // ์๋ฌ
2. ๋ธ๋ก ์ค์ฝํ
์ค๊ดํธ({}) ๋ด์์๋ง ์ ํจํ๋ค.
if (true) {
const PI = 3.14;
console.log(PI); // 3.14
}
console.log(PI); // ์๋ฌ
3. ํธ์ด์คํ
๋ณ์ ์ ์ธ์ด ํธ์ด์คํ ๋์ด, ํด๋น ์ค์ฝํ์ ์ต์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ค.
ํ์ง๋ง ์ด๊ธฐํ ์ ์ ๋ณ์์ ์ ๊ทผํ๋ฉด ReferenceError๊ฐ ๋ฐ์ํ๋ค.
console.log(PI);
let PI = 3.14;
'โ๏ธFront-End > ๐JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [JS] ResizeObserver (0) | 2024.12.09 |
|---|---|
| [JS] Web Worker (0) | 2024.11.18 |
| [JS] JavaScript Engine (0) | 2023.10.23 |
| [JS] ECMAScript (0) | 2023.10.17 |
| [JS] JavaScript (1) | 2023.05.31 |