π μ μΈνλ λͺ¨λ μλ³μλ νΈμ΄μ€ν λλ€
λ³μ μ μΈλ¬Έ (var, let, const), ν¨μ μ μΈλ¬Έ (function, function*), ν΄λμ€ μ μΈλ¬Έ (class) μ λͺ¨λ νΈμ΄μ€ν μ΄ μΌμ΄λλ€.
π λ³μ
β var
// var ν€μλλ‘ μ μΈν λ³μλ [1.μ μΈ λ¨κ³] & [2.μ΄κΈ°ν λ¨κ³]κ° λμμ μ€νλλ€.
// λ°λΌμ λ³μ μ μΈλ¬Έ μ΄μ μ λ³μλ₯Ό μ°Έμ‘°ν μ μλ€.
console.log(VAR); // undefined
var VAR;
console.log(VAR); // undefined
// ν λΉλ¬Έμμ [3.ν λΉ λ¨κ³]κ° μ€νλλ€.
VAR = "var";
console.log(VAR); // "var"
β const
β const ν€μλλ‘ μ μΈν μμλ λ°λμ μ μΈκ³Ό λμμ μ΄κΈ°ν ν΄μΌνλ€.β
( const λ let κ³Ό λ€λ₯΄κ², μ μΈλ¬Έμμ [ 2. μ΄κΈ°ν λ¨κ³ ] λ§ μ€νλ μ μλ€. )
why? letμ λ³μλ₯Ό μ μΈνλ ν€μλμ§λ§, constλ μμ(μμκ° νμ )λ₯Ό μ μΈνλ ν€μλμ΄κΈ°λλ¬Έμ
μ²μλΆν° κ°μ μ§μ ν΄μ€μΌ μ€λ₯κ° μκΈ°μ§ μλλ€. -> constλ (μμκ° νμ ) μ¬ν λΉ λΆκ°/κΈμ§ β
π const ν€μλλ μ¬ν λΉμ κΈμ§ν λΏ, "λΆλ³"μ μλ―Ένμ§ μλλ€.
μλ‘μ΄ μμκ°μ μ¬ν λΉνλ κ²μ λΆκ°λ₯νμ§λ§ νλ‘νΌν° λμ μμ±, μμ , κ° λ³κ²½μ ν΅ν΄ κ°μ²΄λ₯Ό λ³κ²½νλ κ²μ κ°λ₯νλ€.
κ°μ²΄μ νλ‘νΌν°κ° λ³κ²½λλλΌλ λ³μμ ν λΉλ μ°Έμ‘°κ°μ λ³κ²½λμ§ μλλ€.
// const ν€μλλ‘ μ μΈν μμλ λ°νμ μ΄μ μ [1.μ μΈ λ¨κ³]κ° μ€νλλ€.
// βμμ§ [2.μ΄κΈ°ν λ¨κ³]λ κ±°μΉμ§ μμλ€β
// β[2.μ΄κΈ°ν λ¨κ³] μ΄μ μ μΌμμ μ¬κ°μ§λ(Temporal Dead Zone)μμλ μμλ₯Ό μ°Έμ‘°ν μ μλ€.β
console.log(CONST); // SyntaxError: Missing initializer in const declaration
const CONST;
console.log(CONST); // SyntaxError: Missing initializer in const declaration
CONST = "const";
console.log(CONST); // "const"
β let
// let ν€μλλ‘ μ μΈν λ³μλ λ°νμ μ΄μ μ [1.μ μΈ λ¨κ³]κ° μ€νλλ€.
// βμμ§ [2.μ΄κΈ°ν λ¨κ³]λ κ±°μΉμ§ μμλ€β
// β[2.μ΄κΈ°ν λ¨κ³] μ΄μ μ μΌμμ μ¬κ°μ§λ(Temporal Dead Zone)μμλ λ³μλ₯Ό μ°Έμ‘°ν μ μλ€.β
console.log(LET); // ReferenceError: LET is not defined
// λ³μ μ μΈλ¬Έμμ [2.μ΄κΈ°ν λ¨κ³]κ° μ€νλλ€.
let LET;
console.log(LET); // undefined
// ν λΉλ¬Έμμ [3.ν λΉ λ¨κ³]κ° μ€νλλ€.
LET = "let";
console.log(LET); // "let"
π ν¨μ
π ν΄λμ€
'Front-end > JS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
22.02.14 λ©΄μ Q & A (0) | 2022.02.14 |
---|---|
22.02.13 λ©΄μ Q & A (0) | 2022.02.13 |
μλ°μ€ν¬λ¦½νΈ μ κ·ννμ RegExp (0) | 2021.09.27 |
μλ°μ€ν¬λ¦½νΈ λ€μ΄ν°λΈ κ°μ²΄μ νΈμ€νΈ κ°μ²΄ Native Object & Host Object (0) | 2021.09.22 |
μλ°μ€ν¬λ¦½νΈ νλ‘λ―Έμ€μ λΉλκΈ° μ²λ¦¬ Promise & Asynchronous (0) | 2021.09.21 |
λκΈ