1. λ³μ(Variable) μ μμ(const)
π λ³μ
- μ΄λ¦μ΄ λΆμ μ μ₯μ
- κ°μ΄ λ³ν μ μλ μ
- λ³μμ κ°μ ν λΉνκ³ νλμ λ³μλ₯Ό μ°Έμ‘°ν΄μ μ¬λ¬λ² μ¬μ©νλ€.
- κ°μ λ³μλ₯Ό μ¬λ¬ λ² μ μΈνλ©΄ μλ¬κ° λ°μνλ€.
- λ³μμ λ΄μ§ μκ³ κ°μ μ½λλ₯Ό λ°λ³΅ν΄μ μ¬μ©νλ©΄ λ©λͺ¨λ¦¬λ₯Ό μ°¨μ§νκΈ° λλ¬Έμ μ±λ₯μ μ΄μκ° μκ³ μ μ§λ³΄μκ° νλ€κΈ° λλ¬Έμ λ³μλ₯Ό μ¬μ©νλ€.
π μμ
- κ°μ΄ νμ κ³ μ μ μΈ μ
βοΈ λλ¬Έμμμ (μ°μμ)
- νλ‘κ·Έλ¨μμ κ³ μ λ κ°μ λνλ΄λ μμλ₯Ό ννν λ μ¬μ©
- λλ¬Έμμ λ°μ€λ‘ ꡬμ±λ μ΄λ¦μ μ¬μ©νλ€.
- μ΄λ¬ν λ€μ΄λ° κ·μΉμ κ°λ
μ±μ λμ΄κ³ μμμμ λͺ
μμ μΌλ‘ ννν¨μΌλ‘μ¨ μ½λμ μ΄ν΄λ₯Ό λλλ€.
- μμμ μμνΈνκ°λ
κ°λ€π€
- ex)
const ONE_YEAR = 365
π λ³μ μ μΈ λ°©λ²
2. μ격λͺ¨λ (Strict Mode)
π use strict
- μ격λͺ¨λλ₯Ό νμ±νμμΌμ€λ€.
- μ΄ μ§μμκ° μ€ν¬λ¦½νΈ μ΅μλ¨μ μ€λ©΄ μ€ν¬λ¦½νΈ μ μ²΄κ° 'λͺ¨λν(μ΅μ μ)' λ°©μμΌλ‘ λμνλ€.
- μ격λͺ¨λλ₯Ό νλ² νμ±νμμΌμ£Όλ©΄ μ·¨μν λ°©λ²μ μλ€.
use strict
μμλ μ£Όμλ§ μ¬μ©κ°λ₯νλ€.
- μ½λλ₯Ό ν΄λμ€μ λͺ¨λμ μ¬μ©ν΄ ꡬμ±νλ€λ©΄
use strict
κ° μλμΌλ‘ μ μ©λκΈ° λλ¬Έμ μλ΅ν΄λ λλ€.
- λΈλΌμ°μ μ μ½μμμλ κΈ°λ³Έμ μΌλ‘
use strict
κ° μ μ©λμ΄ μμ§ μλ€. νμ§λ§ μ€λ°κΏμ νλ€λ©΄ μ μ©μ΄ κ°λ₯νλ€.
3. μ μκ°μ²΄ (Global This)
π μ μ κ°μ²΄
- μ΄λμλ μ¬μ©κ°λ₯ν λ³μλ ν¨μλ₯Ό λ§λ€ μ μλ€.
- λΈλΌμ°μ νκ²½μμ μ μ κ°μ²΄λ₯Ό
window
, Node.js νκ²½μμ global
μ΄λΌκ³ λΆλ₯Έλ€.
- λ κ°μ§κ° ν΅ν©λμ΄
globalThis
λ‘ νμ€νλμλ€. (μ΅μ€νλ‘λ¬λ νΈνλμ§ μμ μ°Έκ³ )
var
λ‘ μ μΈνκ² λλ©΄ μ μ κ°μ²΄μ νλ‘νΌν°κ° λκΈ° λλ¬Έμ μ μκ°μ²΄λ₯Ό μ€μΌμν¨λ€.
var
λ globalThis νκ²½μ μ μ₯λκ³ let
κ³Ό const
λ λ©λͺ¨λ¦¬μ μ μ₯λλ€.
π ν΄λ¦¬ν (polyfill)
- λΈλΌμ°μ μ ꡬλ²μ μμ μ§μνμ§ μλ κΈ°λ₯μ ꡬννλ μ½λ μ‘°κ°
4. μ€λλ varβββ
π var
λ λΈλ‘ μ€μ½ν(λ³μμ μ¬μ© λ²μ)κ° μλ€.
- μ€μ½νμλ λΈλ‘μ€μ½ν (
{}
)μ ν¨μ μ€μ½ν(function(){}
)κ° μλ€.
var
λ λΈλ‘μ€μ½νκ° μ μ©λμ§ μλλ€λ λ»μ΄λ€. κ·Έ μ΄μ λ μ μΈνλ©΄ μ μ κ°μ²΄ νλ‘νΌν°κ° λκΈ° λλ¬Έμ΄λ€.
- μ½λ λΈλ‘μ΄ ν¨μ μμ μλ€λ©΄,
var
λ ν¨μ μ€μ½νμ μν₯μ λ°λλ€.
- λ³μμ μ€λ³΅ μ μΈμ νμ©νλ€.
- β μ μΈμ νΈμ΄μ€ν
λμ§λ§ ν λΉμ νΈμ΄μ€ν
λμ§ μλλ€.
π μ¦μ μ€ν ν¨μ ννμ (IIFE)
(function() {
let message = "Hello";
alert(message); // Hello
})();
- μμ μ½λλ₯Ό 보면 ν¨μ ννμμ΄ λ§λ€μ΄μ§κ³ , λ°λ‘ νΈμΆλλ©΄μ, ν΄λΉ ν¨μκ° λ°λ‘ μ€νλμλ€.
- IIFEλ₯Ό λ§λ€ λλ ν¨μ ννμμ κ΄νΈλ‘ λλ¬μμ
(function {...})
μ κ°μ ννλ‘ λ§λ λ€. -> κ΄νΈλ‘ λλ¬μΈμ§ μμΌλ©΄ μλ¬κ° λ°μνλ€.
- μλ°μ€ν¬λ¦½νΈλ ν¨μ μ μΈλ¬ΈμΌλ‘ μ μν ν¨μλ₯Ό μ μμ λμμ λ°λ‘ νΈμΆνλ€λ κ²μ κΈ°μ΅νμ
- ν¨μλ₯Ό κ΄νΈλ‘ κ°μΈλ©΄ μλ°μ€ν¬λ¦½νΈκ° ν¨μλ₯Ό ννμμΌλ‘ μΈμνλλ‘ μμΌ μ μλ€.
5. μλ£ν (Data Type) βββββ
- μλ£μ νμ
μ μμ§λ§ λ³μμ μ μ₯λλ κ°μ νμ
μ΄ μΈμ λ μ§ λ°λ μ μλ μΈμ΄λ₯Ό 'λμ νμ
μΈμ΄ (dynamically typed)'λΌκ³ νλ€. -> μμμ νλ³ν
π μ«μν
π BigInt
- ν° μ μ νν
- λμ nμ λΆμ΄λ©΄ BigInt μλ£νμ΄λ€.
π λ¬Έμν
- ν° λ°μ΄ν(""), μμ λ°μ΄ν(''), λ°±ν± (``)μΌλ‘ λ¬Άλλ€.
π λΆλ¦°ν
π null
- μ‘΄μ¬νμ§ μλ, λΉμ΄μλ, μμμλ κ°μ λνλ΄λλ° μ¬μ©νλ€.
- κ°μ²΄κ° μλλ€.
π undefined κ°
- 'ν λΉλμ§ μμ μν'
π κ°μ²΄
- λ°μ΄ν° 컬λ μ
μ΄λ 볡μ‘ν κ°μ²΄λ₯Ό νν
- Array, Function
π μ¬λ³Ό
- κ°μ²΄μ κ³ μ ν μλ³μλ₯Ό λ§λ€ λ μ¬μ©
π typeof μ°μ°μ
- μΈμμ μλ£νμ λ°ννλ€.
- μ°μ°μν
typeof x
, ν¨μν typeof(x)
6. νκ³
HTMLλ°°μΈ λμ λΉν΄ λ°°μΈ μμ΄ λ§μμ κ·Έλ°κ±΄μ§ ν루μ λκ°λ μ§λλμ΄ μ λ§ λ§λ€. κ·Έλ¦¬κ³ λ΄κ° μ§κΈκΉμ§ 곡λΆνλ μλ°μ€ν¬λ¦½νΈλ μλ°μ€ν¬λ¦½νΈκ° μλμλ€. μ€λ λ°°μ΄ λ΄μ©λ§ ν΄λ λ΄κ° μλ λ΄μ©μ 2%μ λ μκ³ λλ¨Έμ§λ μ ν λͺ¨λ₯΄λ λ΄μ©μ΄μλ€. 볡μ΅νλ©΄μ μ΄λμ λ μ 리λ λμ§λ§ μ©μ΄λλ¬Έμ ν·κ°λ¦¬λκ² λ무 λ§λ€. νκ³ μ‘°λΆλ€νκ³ μκΈ°νλ©΄μ μκ²λ λ΄μ©μΈλ° Deep dive μ±
μ 70pμ λ λΆλμ λ²μ¨ λ°°μ΄ κ²μ΄λ€. λ΄μΌ μΉκ΅¬νν
μ±
μ λ°κΈ°λ‘νλλ° λ΄μΌ λͺ¨λλΆν° μ€ν°λμκ°μ μ±
μ½λ κ²μ λͺ©νλ‘ μ‘μμΌκ² λ€. TILλ μμ±νλκ² μ μ μκ°μ΄ λΆμ‘±ν΄μ§λ€γ
γ