์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์ฌ์ฉ์ฑ ๊ฐ์
- suspense react-query
- ๋ฆฌ์กํธ์ฟผ๋ฆฌ suspense
- ๋ฐฑ์ค 1339๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ
- js ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ์ต์ ๋์ฒด์ด๋
- ๋ฐฑ์ค 2108 ์๋ฐ์คํฌ๋ฆฝํธ
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- js ๋ฌธ์์ด ์์ถ
- ๋ฐฑ์ค 1339๋ฒ nodejs
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง ํ๊ณ
- ๊ตฌ๋ฆํค
- ๋ฐฑ์ค 1339๋ฒ js
- js
- ์ค์ฝํ
- js ์ค์ฝํ
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ์์ถ
- suspense ๋์์๋ฆฌ
- ๋ฐฑ์ค 2108 nodejs
- ํ๋ก๊ทธ๋๋จธ์ค ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- app router emotion
- suspense ๋น๋๊ธฐ
- emtion app router
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์์ด ์์ถ
- ์๋ฐ์คํฌ๋ฆฝํธ ์ค์ฝํ
- next13 emotion
- ์นด์นด์ค ์ฝํ
- emotion RSC
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง
- suspense ๋ณ๋ชฉํ์
- Today
- Total
Lennon FE
[JS] ๋ณ์์ ์ข ๋ฅ์ ์ฐ์์ - var, let, const ๋ณธ๋ฌธ
[JS] ๋ณ์์ ์ข ๋ฅ์ ์ฐ์์ - var, let, const
Lennon 2022. 1. 22. 23:06๋ค๋ค ์๋ค์ํผ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์๋ var, let, const 3์ข ๋ฅ๋ก ์ ์ธํ ์ ์๋ค.
์ฐ์ var, let, const์ ๋ํด ์ดํด๋ณด๊ณ ๋ง์ง๋ง์ผ๋ก ์ธ ์ข ๋ฅ๋ก ๋ณ์๋ฅผ ์ ์ธํ์ ๋ ์ด๋ ๋ ๋ฒจ ์ค์ฝํ์์ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํด๋ณด์.
var
var๋ let, const๊ฐ ์๊ธฐ๊ธฐ ์ด์ ์ ๋ณ์์ ์ธ์ ์ํด ์ฌ์ฉํ๋ ๋ฌธ์ด๋ค.
ES6์์ let, const๊ฐ ๋ฑ์ฅ์ผ๋ก ์ธํด ๋๋ถ๋ถ ์ปจ๋ฐด์ ์์๋ ๋ณ์๋ฅผ var๋ก ์ ์ธํ๋ ๊ฑธ ์์ ํ๋ผ๊ณ ํ๋ค. ์๊ทธ๋ด๊น?
let, const์ ๋ฌ๋ฆฌ var๊ฐ ๊ฐ์ง๋ ํน์ง์ด ๋ช ๊ฐ ์๋ค.
๋ํ์ ์ผ๋ก ๊ฐ์ ์๋ก ์ด๊ธฐํ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ฝ๋๋ฅผ ํตํด ์์๋ณด์.
var x = 10;
var x = 20; // x = 20
let x = 10;
let x = 20; // type Error
let y = 10;
y = 20 // y = 20
var๋ let, const์ ๋ค๋ฅด๊ฒ ๋ค์ ์ ์ธ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ ์ค๋ฅ๋ฅผ ์์ฑํ์ง ์์ง๋ง, ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ ๋ถ๋ถ์ด๋ค.
์๋ฌ๋ฅผ ์๋ ค์ฃผ์ง ์์ ์ด ์ ์ ์ ์ธ๋ ๋ณ์์ ๋ค์ด๋ฐ์ด ๊ฐ๋ค๋ฉด ํ๋ก๊ทธ๋จ์์ ์์์น ๋ชปํ ์ค๋ฅ๊ฐ ์๊ธธ ์ ์๋ค.
a = 10;
var a;
b = 10; // ReferenceError
let b;
๋ํ ํ ๋น์ ๋จผ์ ํด์ฃผ๊ณ ์ ์ธ์ ๋์ค์ ํด๋ ์ฑ๋ฆฝ์ด ๋๋ค. ์ด๋ ํธ์ด์คํ ๊ณผ ๊ด๋ จ์ด ์๋๋ฐ ์ด๋ ์ถํ์ ๋ฐฐ์๋ณด๋๋ก ํ์.
var๋ let๊ณผ const์ ๋ค๋ฅธ ํน์ดํ ๋์ด๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ ๊ฒ ๊ฐ๋ค.
์ ๋ฆฌํ์๋ฉด var๋ฌธ์ ์์ฆ ์ฌ์ฉํ์ง ์๋ ์ถ์ธ์ด๋ฉฐ, let๊ณผ const๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
let
let์ var๋ฅผ ๋์ฒดํ ์ ์๋ ์ฌ์ฉ์ ์นํ์ ์ธ ๋ณ์ ์ ์ธ๋ฌธ์ด๋ค.
๋ณ์๋ก ์ ๋์ ์ธ ๊ฐ์ด๋, ์ถํ์ ๋ณ๋ํ ๊ฐ์ ์ง์ ํ๋ ค๋ฉด let์ผ๋ก ๋ณ์ ์ ์ธํด์ฃผ๋ฉด ๋๋ค.
์ฆ let์ผ๋ก ์ ์ธํ ๋ณ์๋ ์ฌํ ๋น์ด ๊ฐ๋ฅํ๋ค.
ex) ๋งค๋ฌ 1kg์ฉ ๋๋ฆฌ๊ธฐ!
let weights = 50;
for(let i = 0; i < 12; i++){
weights += 1;
}
console.log(weights) // 62
๋ํ let์ ์ ์ธ๋งํ๊ณ ์ด๊ธฐํ๋ฅผ ์ ํด์ค๋ ๋์ํ๋ค.
let value;
console.log(value) // undifiend
const
const๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์์๋ฅผ ํํํ ๋, ๋ณํ์ง ์๋ ๊ฐ, ๊ฐ์ฒด๋ฅผ ํํํ ๋ ์ฌ์ฉํ๋ ๋ณ์ ์ ์ธ๋ฌธ์ด๋ค.
const๋ก ์ ์ธํ ๋ณ์๋ ์ฌํ ๋น์ด ๋ถ๊ฐ๋ฅํ๋ค.
const a = 10;
a = 20; // TypeError
ํ๋ ๊ฐ์ฒด์ ๋ํ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์๋ค. ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ง ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ๋ฉฐ,
ํด๋น ๋ณ์ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ ๋ณดํธ๋์ง ์์์ ๊ฐ๋ฅํ๋ค.
const arr = [1,2,3];
const obj = {
name = 'hi';
}
obj.age = 20;
arr.push(4);
arr.shift();
console.log(obj.age) // 20
console.log(arr) // [2,3,4]
๋ํ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ๋ฅผ ํด์ค์ผ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
const a; // Type Error
a = 10;
const b = 20;
๋ค์ ๊ฐ ๋ณ์ ์ ์ธ๋ฌธ์ ์ค์ฝํ์ ๋ํด ์์๋ณด์.
Scope(์ ํจ ๋ฒ์)
์ค์ฝํ๋ ํด๋น ๋ณ์๋ฅผ ์ ์ธํ์ ๋ ์ ํจํ ๋ฒ์๋ฅผ ๋ํ๋ธ๋ค. ๋ธ๋ก๋ ๋ฒจ ์ค์ฝํ์ ํจ์๋ ๋ฒจ ์ค์ฝํ๋ก ๋๋ ์ ์๋ค.
๋๋ค์์ ์ธ์ด๋ ๋ธ๋ก๋ ๋ฒจ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅด์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ ํจ์๋ ๋ฒจ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅธ๋ค.
๋ธ๋ก๋ ๋ฒจ ์ค์ฝํ
๋ชจ๋ ์ฝ๋ ๋ธ๋ก(ํจ์, if๋ฌธ, for๋ฌธ, while๋ฌธ ๋ฑ) ๋ด์์ ์ ์ธ๋ ๋ณ์๋ ์ฝ๋ ๋ธ๋ก ๋ด์์๋ง ์ ํจํ๋ค. ๋ธ๋ก ๋ด๋ถ์์ ์ ์ธํ ๋ณ์๋ ์ง์ญ ๋ณ์์ด๋ฉฐ ์ธ๋ถ์์ ์ฐธ์กฐํ ์ ์๋ค.
ํจ์๋ ๋ฒจ ์ค์ฝํ
ํจ์ ๋ด์์ ์ ์ธ๋ ๋ณ์๋ ํจ์ ๋ด์์๋ง ์ ํจํ๋ฉฐ ์ด๋ฅผ ํจ์ ์ธ๋ถ์์ ์ฐธ์กฐํ ์ ์๋ค. ํจ์ ๋ด๋ถ์์ ์ ์ธํ ๋ณ์๋ ์ง์ญ ๋ณ์์ด๋ฉฐ ํจ์ ์ธ๋ถ์์ ์ ์ธํ ๋ณ์๋ ๋ชจ๋ ์ ์ญ ๋ณ์์ด๋ค.
var์ ์ธ๋ฌธ์ ํจ์๋ ๋ฒจ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅธ๋ค. ์ฆ ๋ธ๋ก ๋ด์์ ์ ์ธํ ๋ณ์๋ฅผ ๋ฐ์์ ์ฐธ์กฐํ ์ ์๋ค. ์ ์ญ์ ์ผ๋ก ๋ณ์๊ฐ ์ํฅ์ ๋ผ์น๋ฏ๋ก,
์ด๋ ์๋ํ์ง ์์ ์ด์ ๋ง์ ๋ฌธ์ ์ ์ด ์๊ธธ ์ ์๋ค.
if (true) {
var x = 10;
}
console.log(x);
๋ฐ๋ฉด let, const ์ ์ธ๋ฌธ์ ๋ธ๋ก๋ ๋ฒจ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅธ๋ค.
if (true) {
let x = 10;
const y = 10;
}
console.log(x); // ReferenceError: x is not defined
console.log(x); // ReferenceError: y is not defined
ES6์์ ๋ณ์ ์ ์ธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
var๋ ๊ฐ๊ธ์ ์์ ํ๋ค.
์ฌํ ๋น์ด ๋๋ ๊ฒฝ์ฐ๋ ์๊ฐ๋ณด๋ค ๋๋ฌผ๋ค. ๋ณ์๋ฅผ const๋ก ์ ์ธํ์
๋ณ์์ ์ฌํ ๋น์ด ํ์ํ ๊ฒฝ์ฐ์๋ง let์ ์ฌ์ฉํ์.
๊ณตํต์ ์ผ๋ก Scope๋ ์ต๋ํ ์ข๊ฒํด์ผ(์ง์ญ๋ณ์) ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ผ๋ฉฐ, ์ข์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.