ν°μ€ν 리 λ·°
[JavaScript] let, const ν€μλμ λΈλ‘ λ 벨 μ€μ½ν
κ°λ°κ°κ΅΄πΈ 2022. 7. 21. 17:05var ν€μλλ‘ μ μΈν λ³μμ λ¬Έμ μ
ES5κΉμ§ λ³μλ₯Ό μ μΈν μ μλ μ μΌν λ°©λ²μ var ν€μλλ₯Ό μ¬μ©νλ κ²μ΄μμ΅λλ€.
λ€μκ³Ό κ°μ var ν€μλμ λ νΉν νΉμ§λ€μ μ£Όμλ₯Ό κΈ°μΈμ΄μ§ μμΌλ©΄ μ¬κ°ν λ¬Έμ λ₯Ό λ°μμν¬ μ μμ΅λλ€.
λ³μ μ€λ³΅ μ μΈ νμ©
var ν€μλλ‘ μ μΈν λ³μλ μ€λ³΅ μ μΈμ΄ κ°λ₯ν΄μ μλμΉ μκ² λ¨Όμ μ μΈλ λ³μμ κ°μ΄ λ³κ²½λλ λΆμμ©μ΄ λ°μν©λλ€.
var x = 1;
var y = 1;
// var ν€μλκ° μλ κ²μ²λΌ λμ
var x = 100;
// μ΄κΈ°νλ¬Έμ΄ μλ λ³μ μ μΈλ¬Έμ 무μλ¨
var y;
console.log(x); // 100
console.log(y); // 1
- xμ yκ° μ€λ³΅ μ μΈλ¨
- xλ μ΄κΈ°νλ¬Έμ΄ μμ΄μ var ν€μλκ° μλ κ²μ²λΌ λμν΄ 100μΌλ‘ κ°μ΄ λ³κ²½λ¨
- yλ μ΄κΈ°νλ¬Έμ΄ μμ΄μ λ³μ μ μΈλ¬Έμ΄ 무μλκ³ μλ¬λ λ°μνμ§ μμ
ν¨μ λ 벨 μ€μ½ν
- var ν€μλλ‘ μ μΈν λ³μλ μ€λ‘μ§ ν¨μμ μ½λ λΈλ‘λ§μ μ§μ μ€μ½νλ‘ μΈμ
- ν¨μ μΈλΆμμ var ν€μλλ‘ μ μΈν λ³μλ μ½λ λΈλ‘ λ΄μμ μ μΈν΄λ λͺ¨λ μ μ λ³μ
- for λ¬Έ, if λ¬Έμ λ³μ μ μΈλ¬Έμμ var ν€μλλ‘ μ μΈνλ©΄ μ μ°λ³μ
λ³μ νΈμ΄μ€ν
- var ν€μλλ‘ λ³μλ₯Ό μ μΈνλ©΄ λ³μ νΈμ΄μ€ν μ΄ λ°μν΄ λ³μ μ μΈλ¬Έ μ΄μ μ μ°Έμ‘°κ° κ°λ₯ν΄μ§
- μ΄λ νλ‘κ·Έλ¨ νλ¦μ λ§μ§ μκ³ κ°λ μ±μ λ¨μ΄λ¨λ¦¬κ³ μ€λ₯ λ°μ μ¬μ§λ₯Ό μ€
μ΄λ¬ν varμ λ¨μ μ 보μνκΈ° μν΄ ES6μμ letκ³Ό constλ₯Ό λμ λμμ΅λλ€.
let ν€μλ
λ³μ μ€λ³΅ μ μΈ κΈμ§
μ΄λ¦μ΄ κ°μ λ³μλ₯Ό μ€λ³΅ μ μΈνλ©΄ λ¬Έλ² μλ¬κ° λ°μν©λλ€.
let bar = 123;
let bar = 456; // SyntaxError
λΈλ‘ λ 벨 μ€μ½ν
λͺ¨λ μ½λ λΈλ‘(ν¨μ, ifλ¬Έ, forλ¬Έ, whileλ¬Έ, try/catchλ¬Έ λ±)μ μ§μ μ€μ½νλ‘ μΈμ νλ λΈλ‘ λ 벨 μ€μ½νλ₯Ό λ°λ¦ λλ€.
let foo = 1; // μ μ λ³μ
{
let foo = 2; // μ§μ λ³μ
let bar = 3; // μ§μ λ³μ
}
console.log(foo); // 1
console.log(bar); // ReferenceError
λ³μ νΈμ΄μ€ν
var ν€μλμ λ¬λ¦¬ let ν€μλλ λ³μ νΈμ΄μ€ν μ΄ λ°μνμ§ μλ κ²μ²λΌ λμν©λλ€.
console.log(foo); // ReferenceError
let foo;
let ν€μλλ‘ μ μΈν λ³μλ "μ μΈ λ¨κ³"μ "μ΄κΈ°ν λ¨κ³"κ° λΆλ¦¬λμ΄ μ§νλμ΄ μμ μμ μ κ°μ΄ *μΌμμ μ¬κ°μ§λμμ λ³μλ₯Ό μ°Έμ‘°νλ©΄ μλ¬κ° λ°μλ©λλ€.
*μΌμμ μ¬κ°μ§λ(DTZ) : μ€μ½νμ μμ μ§μ λΆν° μ΄κΈ°ν μ§μ κΉμ§ λ³μλ₯Ό μ°Έμ‘°ν μ μλ ꡬκ°
let foo = 1; // μ μ λ³μ
{
console.log(foo); // ReferenceError
let foo = 2; // μ§μ λ³μ
}
νμ§λ§, let ν€μλλ‘ μ μΈν λ³μλ μ¬μ ν νΈμ΄μ€ν μ΄ λ°μμ νκΈ° λλ¬Έμ μμ μμ λ μ°Έμ‘° μλ¬κ° λ°μν©λλ€.
μ μ κ°μ²΄μ let
λΈλΌμ°μ νκ²½μμ var ν€μλλ‘ μ μΈν μ μ λ³μλ μ μ κ°μ²΄ windowμ νλ‘νΌν°κ° λλ λ°λ©΄, let ν€μλλ‘ μ μΈν λ³μλ μ μ κ°μ²΄μ νλ‘νΌν°κ° μλλλ€. λ°λΌμ windowλ‘ μ κ·Όν μ μμ΅λλ€.
let x = 1;
console.log(window.x); // undefined
console.log(x); // 1
var y = 2;
console.log(window.y); // 2
console.log(y); // 2
const ν€μλ
μΌλ°μ μΌλ‘ *μμλ₯Ό μ μΈνκΈ° μν΄ μ¬μ©νλ ν€μλλ‘ let ν€μλμ νΉμ§μ΄ λλΆλΆ λμΌνμ§λ§ λͺκ°μ§ μ°¨μ΄μ μ΄ μμ΅λλ€.
- const ν€μλλ‘ μ μΈν λ³μλ λ°λμ μ μΈκ³Ό λμμ μ΄κΈ°νν΄μΌ ν©λλ€.
- const ν€μλλ‘ μ μΈν λ³μλ μ¬ν λΉμ΄ κΈμ§λ¨
*μμ : μ¬ν λΉμ΄ κΈμ§λ λ³μ. μν μ μ§, κ°λ μ±, μ μ§λ³΄μμ νΈμλ₯Ό μν΄ μ κ·Ή μ¬μ©ν΄μΌν¨
νμ§λ§, const ν€μλλ μ¬ν λΉμ κΈμ§ν λΏ "λΆλ³"μ μλ―Ένμ§λ μμμ κ°μ²΄λ₯Ό ν λΉν κ²½μ°μ μμ λ³κ²½ ν μ μμ΅λλ€.
const person = {
name: 'Lee'
};
person.name = 'Kim';
console.log(person); // {name: "Kim"}
var vs. let vs. const
λ³μ μ μΈμλ κΈ°λ³Έμ μΌλ‘ constλ₯Ό μ¬μ©νκ³ letμ μ¬ν λΉμ΄ νμν κ²½μ°μ νμ ν΄ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
const ν€μλλ₯Ό μ¬μ©νλ©΄ μλμΉ μμ μ¬ν λΉμ λ°©μ§νκΈ° λλ¬Έμ μ’ λ μμ ν©λλ€.
varμ let, const ν€μλλ λ€μκ³Ό κ°μ΄ μ¬μ©νλ κ²μ κΆμ₯ν©λλ€.
- ES6μ μ¬μ©νλ€λ©΄ varν€μλλ μ¬μ©X
- μ¬ν λΉμ΄ νμν κ²½μ°μ νμ ν΄ let ν€μλλ₯Ό μ¬μ©. μ΄λ λ³μμ μ€μ½νλ μ΅λν μ’κ² λ§λ¦
- λ³κ²½μ΄ λ°μνμ§ μκ³ μ½κΈ° μ μ©μΌλ‘ μ¬μ©νλ μμ κ°κ³Ό κ°μ²΄μλ const ν€μλλ₯Ό μ¬μ©
- const ν€μλλ μ¬ν λΉμ κΈμ§νλ―λ‘ var, let ν€μλλ³΄λ€ μμ ν¨
[μΆμ²] λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive
'JavaScript > λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] μμ±μ ν¨μμ μν κ°μ²΄ μμ± (0) | 2022.07.22 |
---|---|
[JavaScript] νλ‘νΌν° μ΄νΈλ¦¬λ·°νΈ (0) | 2022.07.21 |
[JavaScript] μ μ λ³μμ λ¬Έμ μ (0) | 2022.07.21 |
[JavaScript] μ€μ½ν (0) | 2022.07.20 |
[JavaScript] ν¨μ (0) | 2022.07.19 |
- Total
- Today
- Yesterday
- JavaScript
- Baekjoon
- ν¨μν νλ‘κ·Έλλ°
- μλ°
- λ€νΈμν¬
- map
- μκ³ λ¦¬μ¦
- μλ°μ€ν¬λ¦½νΈ
- νλ‘κ·Έλλ¨Έμ€
- λͺ¨λ μλ°μ€ν¬λ¦½νΈ deep dive
- νλ‘νΌν°
- μ΄λΆνμ
- ν¬ν¬μΈν°
- http
- TDD
- κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
- git
- λ μ컬 νκ²½
- μ μ λ³μ
- λ€μ΄λλ―Ή νλ‘κ·Έλλ°
- λμμΈ ν¨ν΄
- λ°±μ€
- λ°±μ€ node.js
- fp
- μΉ΄μΉ΄μ€ μΈν΄
- μ½λ©ν μ€νΈ
- νλ‘ν μ½
- λ°±μ€ javascript
- 2019 μΉ΄μΉ΄μ€ κ°λ°μ κ²¨μΈ μΈν΄
- μ΄μ체μ
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |