1. λ³μλ?
1) μ μ
- νλμ κ°μ μ μ₯νκΈ° μν΄ ν보ν λ©λͺ¨λ¦¬ κ³΅κ° μ체 λλ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ μλ³νκΈ° μν΄ λΆμΈ μ΄λ¦
- κΈ°μ΅νκ³ μΆμ λ°μ΄ν° κ°μ λ©λͺ¨λ¦¬μ μ μ₯νκ³ , μ μ₯λ λ°μ΄ν° κ°μ μ¬μ¬μ©νκΈ° μν΄ μ¬μ©
- μλ³μ: λ³μμ μ΄λ¦μ 'μλ³μ(identifier)'λΌκ³ λ νλλ°, μλ³μλ κ° μμ²΄κ° μλ κ°μ μ μ₯νκ³ μλ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κΈ°μ΅νλ€. μλ³μλ λ³μλͺ μ κ΅νλ κ°λ μ΄ μλκ³ , λ³μ, ν¨μ, ν΄λμ€ λ±μ μ΄λ¦μ λͺ¨λ μλ³μλΌκ³ ν μ μλ€.
2) λ³μμ μμ± 3λ¨κ³ - μ μΈ, μ΄κΈ°ν, ν λΉ
(1) λ³μ μ μΈ
- λ³μ μ μΈμ΄λ λ³μλ₯Ό μμ±νλ κ², μ¦ κ°μ μ μ₯νκΈ° μν΄ λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ λ³μλͺ κ³Ό ν보λ λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμλ₯Ό μ°κ²°ν΄μ κ°μ μ μ₯ν μ μλλ‘ μ€λΉνλ κ²μ λ§νλ€.
- λ³μλ₯Ό μ μΈν λλ var, let, const ν€μλλ₯Ό μ¬μ©νλ€.
var number // console.log(number) = undefined
let i
const result
(2) λ³μ μ΄κΈ°ν
λ³μ κ°μ²΄μ λ±λ‘λ λ³μλ₯Ό λ©λͺ¨λ¦¬μ ν λΉνλ€. μ΄ λ¨κ³μμ λ³μλ undefinedλ‘ μ΄κΈ°νλλ€.
(3) κ°μ ν λΉ
- λ³μμ κ°μ μ μ₯νλ κ²μ λ§νλ€.
- λ³μμ κ°μ ν λΉν λλ ν λΉ μ°μ°μ '='λ₯Ό μ¬μ©νκ³ , ν λΉ μ°μ°μλ μ°λ³μ κ°μ μ’λ³μ λ³μμ ν λΉνλ€.
let score; // λ³μ μ μΈ
score = 100; // κ°μ ν λΉ
let score = 100; // λ³μ μ μΈκ³Ό κ°μ ν λΉμ νλμ λ¬ΈμΌλ‘ νν
- μ¬κΈ°μ μ μν μ μ, λ³μ μ μΈκ³Ό κ°μ ν λΉμ μ€ν μμ μ΄ λ€λ₯΄λ€λ κ²μ΄λ€. λ³μ μ μΈμ λ°νμ μ΄μ μ λ¨Όμ μ€νλμ§λ§, κ°μ ν λΉμ λ°νμμ μ€νλλ€.
μμΈν κ²μ 3. λ³μ νΈμ΄μ€ν μ°Έκ³
3) κ°μ μ¬ν λΉ, λ³μ μ°Έμ‘°
(1) κ°μ μ¬ν λΉ
- κ°μ μ¬ν λΉμ΄λ μ΄λ―Έ κ°μ΄ ν λΉλμ΄ μλ λ³μμ μλ‘μ΄ κ°μ λ λ€μ ν λΉνλ κ²μ λ§νλ€.
- var, letμΌλ‘ μ μΈν λ³μλ κ°μ μ¬ν λΉν μ μμ§λ§, constλ‘ μ μΈλ λ³μλ μ¬ν λΉμ΄ λΆκ°λ₯νλ€.
let score = 100;
score = 90; // κ°μ μ¬ν λΉ
(2) λ³μ μ°Έμ‘°
- λ³μ μ°Έμ‘°λ λ³μμ μ μ₯λ κ°μ μ½μ΄λ€μ΄λ κ²μ λ§νλ€.
const number = 10
number // 10, λ³μ μ°Έμ‘°
2. var, let, const
1) var vs. let vs. const
- varλ ES5κΉμ§ λ³μλ₯Ό μ μΈν μ μλ μ μΌν λ°©λ²μ΄μμΌλ, ES6μμ letκ³Ό constμΌλ‘ λ³μλ₯Ό μ μΈν μ μκ²λμλ€.
- varλ‘ μ μΈλ λ³μλ μ¬ν λΉκ³Ό μ€λ³΅ μ μΈμ΄ λͺ¨λ κ°λ₯ν΄μ, λμΌν μ΄λ¦μ λ³μκ° μ μΈλμ΄ μλ κ²μ λͺ¨λ₯΄κ³ μ€λ³΅λ μ΄λ¦μΌλ‘ μ μΈνλλΌλ μλ¬κ° λ°μνμ§ μμ μ€λ₯λ₯Ό λ°μν κ°λ₯μ±μ΄ λλ€.
- λ°λΌμ varλ₯Ό μ¬μ©νλ λμ letκ³Ό constλ₯Ό μ¬μ©νλ€. (var μ¬μ©μ΄ λΆκ°λ₯ν κ²μ μλ)
- λ³μ μ μΈμλ κΈ°λ³Έμ μΌλ‘ constλ₯Ό μ¬μ©νκ³ , μ¬ν λΉμ΄ νμν κ²½μ°μλ§ νμ νμ¬ letμ μ¬μ©νλ€.
2) μ¬ν λΉ λ° μ€λ³΅μ μΈ μ¬λΆ
- var : μ¬ν λΉ κ°λ₯, μ€λ³΅μ μΈ κ°λ₯
- let : μ¬ν λΉ κ°λ₯, μ€λ³΅μ μΈ λΆκ°λ₯
- const : μ¬ν λΉ λΆκ°λ₯, μ€λ³΅μ μΈ λΆκ°λ₯
λ³ννμ§ μλ λ³μλ₯Ό μ μΈν λλ let λμ constλ₯Ό μ¬μ©νλ€. constλ‘ μ μΈν λ³μλ₯Ό 'μμ(constant)'λΌκ³ νκ³ , μμλ μ¬ν λΉν μ μμΌλ―λ‘ μμλ₯Ό λ³κ²½νλ €κ³ νλ©΄ μλ¬κ° λ°μνλ€.
3) μ€μ½ν
- μ€μ½νλ μλ³μμ μ ν¨λ²μ(μ κ·Όν μ μλ λ²μ)λ₯Ό μλ―Ένλ€.
- var : ν¨μ λ 벨 μ€μ½ν
- let, const : λΈλ‘ λ 벨 μ€μ½ν
- ν¨μ λ 벨 μ€μ½ν : ν¨μλ₯Ό μ μΈν λλ§λ€ μλ‘μ΄ μ€μ½νλ₯Ό μμ±νλ©°, ν¨μ λ΄μμ μ μΈν λ³μλ κ·Έ ν¨μ λ΄μμλ§ μ ν¨νκ³ , ν¨μ μΈλΆμμλ μ°Έμ‘°ν μ μμ
- λΈλ‘ λ 벨 μ€μ½ν : μ½λ λΈλ‘(ν¨μ, ifλ¬Έ, forλ¬Έ, whileλ¬Έ λ±) λ΄μμ μ μΈλ λ³μλ κ·Έ μ½λ λΈλ‘ λ΄μμλ§ μ ν¨νλ©°, μ½λ λΈλ‘ μΈλΆμμλ μ°Έμ‘°ν μ μμ
4) νΈμ΄μ€ν (hositing)
- νΈμ΄μ€ν μ΄λ, λͺ¨λ μ μΈλ¬Έμ΄ ν΄λΉ μ€μ½νμ 맨 μλ‘ λμ΄ μ¬λ €μ§ κ²μ²λΌ λμνλ νΉμ±μ μλ―Ένλ€.
- var, let, constμ κ°μ λ³μλΏλ§ μλλΌ function, class ν€μλλ₯Ό μ¬μ©νμ¬ μ μΈνλ λͺ¨λ μλ³μ(λ³μ, ν¨μ, ν΄λμ€ λ±)λ νΈμ΄μ€ν λλ€.
- λ¨, letκ³Ό constλ varμ λ¬λ¦¬ νΈμ΄μ€ν μ undefinedλ‘ λ³μλ₯Ό μ΄κΈ°ννμ§λ μλλ€. λ°λΌμ λ³μμ μ΄κΈ°νλ₯Ό μννκΈ° μ μ μ½λ μ½λκ° λ¨Όμ λνλλ©΄ μμΈκ° λ°μνλ€.
// μμ 1
// yλ§ νΈμ΄μ€ν
λμ
x = 1; // x μ΄κΈ°ν. xλ₯Ό μ μΈνμ§ μμ κ²½μ° μ μΈ. κ·Έλ¬λ λͺ
λ Ήλ¬Έμ varκ° μμΌλ―λ‘ νΈμ΄μ€ν
μ΄ λ°μνμ§ μμ
console.log(x + " " + y); // '1 undefined'
// JavaScriptλ μ μΈλ§ νΈμ΄μ€ν
νλ―λ‘, μμ€μ yλ undefined
var y = 2; // yλ₯Ό μ μΈνκ³ μ΄κΈ°ν
// μμ 2
// νΈμ΄μ€ν
μ μμ§λ§, λ³μ μ΄κΈ°νλ (μμ§ νμ§ μμ κ²½μ°) λ³μ μ μΈκΉμ§ λ³ννλ―λ‘ λ³μλ₯Ό μ¬μ©ν μ μμ
a = 'ν¬λ'; // a μ΄κΈ°ν
b = 'λ² λ¦¬'; // b μ΄κΈ°ν
console.log(a + "" + b); // 'ν¬λλ² λ¦¬'
λ€μμ ν¨μμ μμμ΄λ€.
// μΌλ°μ μΈ μ½λ μμ± μμ
function catName(name) {
console.log(`μ κ³ μμ΄μ μ΄λ¦μ ${name}μ
λλ€.`)
}
catName("νΈλμ΄");
// "μ κ³ μμ΄μ μ΄λ¦μ νΈλμ΄μ
λλ€."
// νΈμ΄μ€ν
μμ
catName("λλΉ");
function catName(name) {
console.log(`μ κ³ μμ΄μ μ΄λ¦μ ${name}μ
λλ€.`);
}
// "μ κ³ μμ΄μ μ΄λ¦μ λλΉμ
λλ€."
- 'λλΉ'μ κ²½μ° ν¨μ νΈμΆμ΄ ν¨μ μμ²΄λ³΄λ€ λ¨Όμ μμ±λμμμλ λΆκ΅¬νκ³ , μ μμ μΌλ‘ console.logκ° μΆλ ₯λλ κ²μ λ³Ό μ μλ€.
5) var, let const λΉκ΅ μ 리
μ°Έκ³ μλ£
γλͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Diveγ, μ΄μ λͺ¨, μν€λΆμ€
'π» Programming > JS, TS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] μ΄λ²€νΈ κ°μ²΄ (0) | 2024.01.13 |
---|---|
[JavaScript] window&document μ μκ°μ²΄μ DOM (0) | 2024.01.11 |
[JavaScript] slice vs splice vs split μ°¨μ΄μ (0) | 2023.08.08 |
[TypeScript] Map (0) | 2023.07.27 |
[JavaScript] μλ°μ€ν¬λ¦½νΈλ‘ ν¬λ¦¬μ€λ§μ€κΉμ§ λ¨μ μκ° κ³μ°νκΈ° (0) | 2023.06.21 |