
μ μ₯μμ, λ³μμ λν΄ μ΄ν΄λ΄€λ€.
λ§μ½ λκ΅°κ°κ° 'λ³μμ μ μ₯νλ κ°μ΄λΌλ κ² λλ'κ³ λ¬Όμ΄λ³΄λ©΄, λλΌκ³ λ΅ν κ²μΈκ°?
μ€μν κ°λ μ΄λ, λΆλͺ νκ² μ€λͺ ν μ μμ΄μΌνλ€.
κ°μ΄λΌλ건, μ(ννμ)μ΄ νκ°λμ΄ μμ±λ κ²°κ³Όμ΄λ€.
λκ°,, μμν μ μμ΄λ€.
μ¬κΈ°μ λ§νλ κ°, μμ΄λΌλ건 λκ³ ,, λ νκ°λλ€λ 건, μμ±λλ€λ 건 λκΉ?
νλνλ λ―μ΄μ κ°μ μλ²½νκ² μ΄ν΄ν΄λ³΄μ.
λͺ¨λ κ°μ data typeμ κ°μ§λ€.
data typeμ΄ μ€μν μ΄μ λ λκΉ?
λͺ¨λ κ°λ€μ, λ©λͺ¨λ¦¬μ bitμ ννλ‘ λμ΄λλ€.
μ°λ¦¬κ° μ΄ κ°λ€μ μ¬μ©νκΈ° μν΄μλ, λ©λͺ¨λ¦¬μ μλ bit ννμ κ°λ€μ ν΄μν΄μΌ νλ€.
μ΄λ data typeμ λ°λΌ λ€λ₯Έ λ°©μμΌλ‘ ν΄μλκΈ° λλ¬Έμ! λ§€μ° μ€μνλ€..
μ(ννμ)μ΄ νκ°λμ΄ μμ± λ κ²°κ³Ό
κ°μ΄λΌλ 건, λ€μν λ°©λ²μΌλ‘ μμ±λλ€.
μ¬μ€ κ°μ₯ κΈ°λ³Έμ μΈ λ°©λ²μ 리ν°λ΄(literal)μ μ¬μ©νλ λ°©λ²μ΄λ€.
μ¬λμ΄ μ΄ν΄ν μ μλ μλΌλΉμ μ«μ, μνλ²³, νκΈ λ±μ λ¬Έμ
λλ μ½μλ κΈ°νΈμΈ "", '', [], {}, // λ±μ μ¬μ©ν΄μ κ°μ μμ±νλ€λ κ²μ΄λ€.
μ°λ¦¬κ° νλ‘κ·Έλλ°μ ν λ μμ±νλ 3μ, μλΌλΉμ μ«μ 3μ΄ μλ μ«μ 리ν°λ΄ μ΄λ©°, μ΄κ²μ μ½λμ κΈ°λ‘νλ©΄ JavaScript μμ§μ΄ μ΄λ₯Ό νκ°ν΄μ λ©λͺ¨λ¦¬μ μ«μ 3μ μμ±ν΄λ΄λ κ²μ΄λ€.
μ¦, μλΌλΉμ μ«μ 3μ μ¬λμ μν νκΈ° λ°©μμΌ λΏμ΄κ³ , μ½λ μμ νκΈ°λ μ«μ 리ν°λ΄μ΄ μ€νλλ©΄? μ€μ μ«μ κ°μΌλ‘ λ³νλλ€.
μ(ννμ)μ΄ νκ° λμ΄ μμ±λ κ²°κ³Ό
νκ°λΌλ 건 κ°λ¨νλ€.
μμ ν΄μν΄μ, κ°μ μμ±νκ±°λ μ°Έμ‘°(κ°λ¨ν λ§νλ©΄ μ¬μ©)νλ κ².
μ(ννμ) μ΄ νκ°λμ΄ μμ±λ κ²°κ³Ό
κ°μΌλ‘ νκ°λ μ μλ λ¬Έ(statement)λ₯Ό λ§νλ€.
μ€λͺ λ³΄λ¨ μ½λκ° μ΄ν΄κ° μ¬μΈ κ² κ°λ€.
let score = 100; // (1)
let score = 50 + 50; // (2)
score; // (3)
(1)
μ¬κΈ°μ 100μ, 리ν°λ΄μ΄λ€. κ·Έλ¬λκΉ 100μ΄ JavaScript μμ§μ μν΄μ νκ°λμ΄ κ°μ μμ±νλ€. κ·Έλ κΈ° λλ¬Έμ 리ν°λ΄μ νκ°μμ΄λ€.
(2)
리ν°λ΄κ³Ό μ°μ°μκ° μμ±λ μ°λ³μμ μ«μκ° 100μ μμ±νλ€. (1)μμ μ΄ν΄λ΄€λ― 100μ 리ν°λ΄, μ¦ ννμμ΄λ€.
(3)
λ³μ μλ³μλ₯Ό μ°Έμ‘°νλ μ½λμ΄λ©°, λ³μ κ°μΌλ‘ νκ°λλ€. μλ³μ μ°Έμ‘°λ κ°μ μμ±νμ§λ μλλ€. νμ§λ§ κ°μΌλ‘ νκ°λκΈ° λλ¬Έμ ννμμ΄λ€.
μ λ¦¬κ° μ’ λλκ°?
νλ§λλ‘ μ 리νμλ©΄, κ°μΌλ‘ νκ°λ μ μλ λͺ¨λ statementλ ννμμ΄λ€.
ννμκ³Ό ννμμ λμΉ(equivalent)μ΄λ€.
κ·Έλ¬λκΉ μμ 1 + 2 = 3 μμ 1 + 2μ 3μ κ°λ€κ³ ν μ μλ€.
ννμμ κ°μ²λΌ μ¬μ©ν μ μκΈ° λλ¬Έμ΄λ©°, λ¬Έλ²μ μΌλ‘ κ°μ΄ μμΉν μ μλ μ리μλ ννμμ΄ λ€μ΄κ° μ μλ€.
λ€λ₯Έ ννμμ μΌλΆκ° λμ΄ μλ‘μ΄ κ°μ λ§λ€μ΄λΌ μλ μλ€.
κΈΈκ² λ§νμ§λ§ κ²°λ‘ μ, ννμμ κ°μ²λΌ μ¬μ©νλ€ λ κ²μ΄λ€.
κ·Έλ λ€λ©΄ μ΄μ λ¬Έκ³Ό ννμμ ꡬλΆν΄λ³΄μ.
λ¬Έμ΄λ, νλ‘κ·Έλ¨μ ꡬμ±νλ κΈ°λ³Έλ¨μμ΄μ μ΅μλ¨μμ΄λ€.
νλ‘κ·Έλλ°μ λ¬Έμ μμ±νκ³ , μ΄λ₯Ό μμμ λ§κ² λμ΄νλ νμμ΄λ€.
μ΄ λ¬Έμ μ¬λ¬ tokenμΌλ‘ ꡬμ±λλ€.
tokenμ΄λΌλ 건, λ¬Έλ²μ μ΅μ λ¨μμ΄λ€.
let sum = 1 + 2; λΌλ μ½λλ₯Ό token λ¨μλ‘ λλμλ©΄
let, sum, =, 1, +, 2, ; μ΄λ κ² λλ μ μλ€.
λ¬Έμ΄λΌλ 건, λͺ λ Ήλ¬Έμ΄λΌκ³ λ νλ€.
μ»΄ν¨ν°μκ² λ΄λ¦¬λ λͺ λ Ήμ΄λΌλ μλ―Έμ΄λ€.
λ¬Έμ μ’
λ₯λ‘λ μ μΈλ¬Έ, ν λΉλ¬Έ, 쑰건문, λ°λ³΅λ¬Έ λ±μ΄ μλ€.
JavaScript μμ§μ μΈλ―Έμ½λ‘ ;λ‘ λ¬Έμ μ’
λ£λ₯Ό νμ
νλ€.
; λ₯Ό ν΅ν΄ μμ°¨μ μΌλ‘ νλμ© λ¬Έμ μ€ννλ€.
κ·Έλ¬λ μ¬λ§νλ©΄ ; μ λΆμ¬μ£Όλλ‘ νμ
μ¬μ€... JavaScript μμ§μ ;μ΄ μμ΄λ μμ€μ½λλ₯Ό ν΄μ κ³Όμ μμ 'μ΄ μ΄μ―€μμ λ¬Έμ΄ λλκ±°κ°μλ°?' μΆμΌλ©΄ κ·Έ μ§μ μ μλμΌλ‘ ; μ λΆμ¬μ£Όκ³ , μ΄λ₯Ό ASIλΌκ³ νλ€.
κ·Έλμ ;λ₯Ό λΆμ΄μ§ λ§μκ³ μ£Όμ₯νλ μ΄λ€λ μμ§λ§,, μ°λ¦¬λ λΆμ¬μ£Όλλ‘ νμ.
κ·Έλμ λ λ¬Έκ³Ό ννμμ ꡬλΆνμκ³ νλλ° λ¬Έμ μ€λͺ
νλ€κ° λ무 λ©λ¦¬ μ¨ κ² κ°λ€.
ννμμΈ λ¬Έ
ννμμ λ¬Έμ μΌλΆμΌ μλ μκ³ , κ·Έ μμ²΄λ‘ λ¬Έμ΄ λ μλ μλ€.
μ΄λ₯Ό ꡬλ³νκΈ° μν κ°μ₯ κ°λ¨ν λ°©λ²μ λ³μμ ν λΉν΄λ³΄λ κ²μ΄λ€.
κ°μΌλ‘ νκ°λ μ μλ λ¬Έ, ν λΉλ¬Έμ΄λΌλ©΄ ννμμΈ λ¬Έ μΌ κ²μ΄λ€.
ννμμ΄ μλ λ¬Έ
λ³μμ ν λΉν μ μλ, λ³μμ μΈλ¬Έκ³Ό κ°μ λ¬Έμ΄λ€.
chrome κ°λ°μ λꡬμμ ννμμ΄ μλ λ¬Έμ μ€ννλ©΄, νμ undefinedλ₯Ό μΆλ ₯νκ³ , μ΄λ₯Ό μλ£κ°μ΄λΌκ³ νλ€.
μ΄ undefinedλ νκ° κ²°κ³Όκ° μλλ©°, λ³μμ ν λΉνκ±°λ μ°Έμ‘°ν μ μλ€.
κ°κ³Ό ννμ μ΄λ° κ°λ μ κΉκ² μκ°ν΄λ³Έ μ μ΄ μμλλ° μ 리ν μ μλ κΈ°νκ° λ κ² κ°μ λ§μ‘±μ€λ½λ€!