λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive λμμ 4μ₯ λ³μμ 5μ₯ ννμκ³Ό λ¬Έμ μ 리νμμ΅λλ€.
λ©λͺ¨λ¦¬λ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ λ©λͺ¨λ¦¬ μ μ μ§ν©μ΄λ€. λ©λͺ¨λ¦¬ μ νλμ ν¬κΈ°λ 1λ°μ΄νΈμ΄λ©° μ»΄ν¨ν°λ λ©λͺ¨λ¦¬ μ μ ν¬κΈ°, μ¦ 1λ°μ΄νΈ λ€μλ‘ λ°μ΄ν°λ₯Ό μ μ₯νκ±°λ μ½μ΄λ€μΈλ€.
λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ κ°μ μ§μ μ κ·Όνλ κ²μ μΉλͺ μ μ€λ₯λ₯Ό λ°μμν¬ κ°λ₯μ±μ΄ λ§€μ° λλ€. λ°λΌμ μλ°μ€ν¬λ¦½νΈλ κ°λ°μμ μ§μ μ μΈ λ©λͺ¨λ¦¬ μ μ΄λ₯Ό νμ©νμ§ μλλ€.
λ³μλ νλμ κ°μ μ μ₯νκΈ° μν΄ ν보ν λ©λͺ¨λ¦¬ κ³΅κ° μ체 λλ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ μλ³νκΈ° μν΄ λΆμΈ μ΄λ¦μ λ§νλ€. μ¦, κ°μ μμΉλ₯Ό κ°λ¦¬ν€λ μμ§μ μΈ μ΄λ¦μ΄λ€.
λ°λΌμ κ°λ°μκ° μ§μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ κ°μ μ μ₯νκ³ μ°Έμ‘°ν νμκ° μκ³ λ³μλ₯Ό ν΅ν΄ μμ νκ² κ°μ μ κ·Όν μ μλ€. λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ κ°μ λ€μ μ½μ΄ μ¬μ¬μ©ν μ μλλ‘ κ°μ΄ μ μ₯λ λ©λͺ¨λ¦¬ 곡κ°μ μμ§μ μΈ μ΄λ¦μ λΆμΈ κ²μ΄λ€.
λ³μ μ΄λ¦μ μλ³μλΌκ³ λ νλ€. μλ³μλ μ΄λ€ κ°μ ꡬλ³ν΄μ μλ³ν μ μλ κ³ μ ν μ΄λ¦μ λ§νλ€. λν κ°μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κΈ°μ΅νκ³ μλ€. μ¦, μλ³μλ λ©λͺ¨λ¦¬ μ£Όμμ λΆμΈ μ΄λ¦μ΄λΌκ³ ν μ μλ€.
λ³μ μ μΈμ΄λ λ³μλ₯Ό μμ±νλ κ²μ λ§νλ€. λ³μλ₯Ό μ¬μ©νλ €λ©΄ λ°λμ μ μΈμ΄ νμνλ€. var, let, const
ν€μλλ₯Ό μ¬μ©νλ€.
λ³μ μ μΈμ μμ€μ½λκ° ν μ€μ© μμ°¨μ μΌλ‘ μ€νλλ μμ , μ¦ λ°νμμ΄ μλλΌ κ·Έ μ΄μ λ¨κ³μμ λ¨Όμ μ€νλκΈ° λλ¬Έμ΄λ€.
var
letκ³Ό const
λ³μ μ μΈμ μμ€ μ½λκ° μμ°¨μ μΌλ‘ μ€νλλ μμ μΈ λ°νμ μ΄μ μ μ€νλμ§λ§ κ°μ ν λΉμ μμ€μ½λκ° μμ°¨μ μΌλ‘ μ€νλλ μμ μΈ λ°νμμ μ€νλλ€.
κ°μ μ¬ν λΉν μ μμ΄μ λ³μμ μ μ₯λ κ°μ λ³κ²½ν μ μλ€λ©΄ λ³μκ° μλλΌ μμλΌ νλ€. ES6μμ λμ λ constλ₯Ό μ¬μ©ν΄ μ μΈν λ³μλ μ¬ν λΉμ΄ κΈμ§λλ€.
λ³μμ κ°μ μ¬ν λΉ νλ©΄ μ΄μ μ μ μ₯λμ΄μλ λ©λͺ¨λ¦¬μ μ μ₯νλ κ²μ΄ μλλΌ μλ‘μ΄ λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯νλ€.
λν μ무λ μ¬μ©νκ³ μμ§ μμ λ©λͺ¨λ¦¬μ κ°λ€μ κ°λΉμ§ μ½λ ν°μ μν€ λ©λͺ¨λ¦¬μμ μλ ν΄μ λλ€. λ¨, λ©λͺ¨λ¦¬μμ μΈμ ν΄μ λ μ§λ μμΈ‘ν μ μλ€.
μλ³μμ λ€μ΄λ° κ·μΉ
_
, $
λ₯Ό ν¬ν¨ν μ μλ€._
, $
λ‘ μμν΄μΌνλ€. μ«μλ‘ μμν μ μλ€.κ°μ μμ΄ νκ°λμ΄ μμ±λ κ²°κ³Όλ₯Ό λ§νλ€. λ³μμ ν λΉλλ κ²μ κ°μ΄λ€.
리ν°λ΄μ μ¬λμ΄ μ΄ν΄ν μ μλ λ¬Έμ λλ μ½μλ κΈ°νΈλ₯Ό μ¬μ©ν΄ κ°μ μμ±νλ νκΈ°λ²μ λ§νλ€.
μ¦ λ¦¬ν°λ΄μ κ°μ μμ±νκΈ° μν΄ λ―Έλ¦¬ μ½μν νκΈ°λ²μ΄λΌκ³ ν μ μλ€.
ex)
μ μ 리ν°λ΄ : 100
8μ§μ 리ν°λ΄ 0x41
λ°°μ΄ λ¦¬ν°λ΄ : [1, 2, 3]
ννμμ κ°μΌλ‘ νκ°λ μ μλ λ¬Έμ΄λ€. μ¦, ννμμ΄ νκ°λλ©΄ μλ‘μ΄ κ°μ μμ±νκ±°λ κΈ°μ‘΄ κ°μ μ°Έμ‘°νλ€.
var score = 100; // ννμ
score; // 100 -> μλ³μ μ°Έμ‘°λ κ°μ μμ±νμ§λ μμ§λ§ κ°μΌλ‘ νκ°λλ―λ‘ ννμμ΄λ€.
μ¦, κ°μΌλ‘ νκ°λ μ μλ λͺ¨λ λ¬Έμ λͺ¨λ ννμμ΄λ€.
λ¬Έμ νλ‘κ·Έλ¨μ ꡬμ±νλ κΈ°λ³Έ λ¨μμ΄μ μ΅μ μ€ν λ¨μμ΄λ€.
var x; // λ³μ μ μΈλ¬Έ
x = 5; // ν λΉλ¬Έ
function foo () {} // ν¨μ μ μΈλ¬Έ
if (x > 1) { // 쑰건문
console.log(x);
}
μΈλ―Έμ½λ‘ μ λ¬Έμ μ’
λ£λ₯Ό λνλΈλ€. λ¬Έμ λμ λΆμ΄λ μΈλ―Έμ½λ‘ μ μλ΅ κ°λ₯νλ€.
μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μμ€μ½λλ₯Ό ν΄μ ν λ λ¬Έμ λμ΄λΌκ³ μμΈ‘λλ μ§μ μ μΈλ―Έμ½λ‘ μ μλμΌλ‘ λΆμ¬μ€λ μΈλ―Έμ½λ‘ μλ μ½μ
κΈ°λ₯μ΄ μ묡μ μΌλ‘ μνλλ€.
ννμμΈ λ¬Έκ³Ό ννμμ΄ μλ λ¬Έμ ꡬλ³νλ κ°μ₯ κ°λ¨νκ³ λͺ λ£ν λ°©λ²μ λ³μμ ν λΉν΄ 보λ κ²μ΄λ€.
ννμμΈ λ¬Έμ κ°μΌλ‘ νκ°λλ―λ‘ λ³μμ ν λΉν μ μλ€.
var foo = x = 100;
console.log(foo); // 100
Ref
- μ΄μ λͺ¨ μ , βλͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Diveβ, μν€λΆμ€