λ³μ
λ λ°μ΄ν°λ₯Ό λ΄κΈ° μν λ©λͺ¨λ¦¬ 곡κ°μ μλ―Έν©λλ€.
μ½κ² μκ°νλ©΄, μ΄λ€ κ°μ λ΄κΈ° μν μμλ κ·Έλ¦μ΄λΌκ³ λΉμ ν μ μμ΅λλ€.
μλ°μ€ν¬λ¦½νΈμμλ var
ν€μλλ‘ λ³μλ₯Ό μ μΈνλ©°, μ μΈν¨κ³Ό λμμ κ°μ ν λΉν μ μμ΅λλ€. λν μΌν(,)
λ₯Ό ν΅ν΄ μ¬λ¬ κ°λ₯Ό ν λ¬Έμ₯μΌλ‘ μ μΈν μ μμ΅λλ€.
μ§μ λ μ΄κΉκ° μμ΄ μ μΈλ λ³μλ undefined
κ°μ κ°μ΅λλ€.
β example
// var λ³μ μ΄λ¦;
// var λ³μ μ΄λ¦ = ν λΉν κ°;
var sum; // λ³μ sumμ μ μΈ. undifined
var a = 3; // λ³μ aλ₯Ό μ μΈν¨κ³Ό λμμ 3μ aμ ν λΉ
var b, c, d;
var e = 1,
f = 2,
g = 3; // μ¬λ¬ λ³μλ₯Ό ν λ²μ μ μΈ λ° μ΄κΈ°ν κ°λ₯
μ μΈλμ§ μμ λ³μλ₯Ό μ½μΌλ €κ³ νλ©΄ μ°Έμ‘° μ€λ₯κ° λ°μν©λλ€.
λ³μλ₯Ό μ μΈνμ§ μκ³ μ¬μ©νλ νμλ λ²κ·Έμ μμΈμ΄ λ μ μμΌλ, λ°λμ μ μΈνκ³ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. Strict
λͺ¨λλ₯Ό νμ©νλ©΄ μ μΈνμ§ μμ λ³μμ κ°μ λμ
νμ λ μ€λ₯κ° λ°μν©λλ€. μμΈν μ€λͺ
μ π Strict mode μ°Έκ³ !
var λ¬ΈμΌλ‘ μ μΈλμ§ μμ λ³μμ κ°μ λμ
νλ©΄ μ€λ₯κ° λ°μνμ§ μμ΅λλ€.
κ·Έ μ΄μ λ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ ν΄λΉ λ³μλ₯Ό μλμΌλ‘ μ μ λ³μλ‘ μ μΈνκΈ° λλ¬ΈμΈλ°, μ΄λ λ³μμ μ ν¨ λ²μμ κ΄λ ¨μ΄ μμ΅λλ€. νμ μμ±νλ κΈμμ λ€λ£¨λλ‘ νκ² μ΅λλ€!
β example
// μ μΈλμ§ μμ λ³μλ₯Ό μ½μΌλ €κ³ ν λ
console.log(x); // β‘ ReferenceError: x is not defined(μ€λ₯ λ©μΈμ§)
// var λ¬ΈμΌλ‘ μ μΈλμ§ μμ λ³μμ κ°μ λμ
ν λ
y = 2;
console.log(y); // β‘ 2
hoist
μ μ¬μ μ μ μλ₯Ό μ΄ν΄λ³΄λ©΄, λ€μ΄μ¬λ¦¬λ€/λμ΄μ¬λ¦¬λ€ λΌλ λ»μ κ°κ³ μμ΅λλ€.
νλ‘κ·Έλ¨μ μμ± μμμ λ°λΌ μ°¨λ‘λλ‘ μ€νλμ§λ§, λ³μ μ μΈμ μ΄ μμΉμ λ°λ₯΄μ§ μκ³ λ²μμ λ°λΌ μ μΈκ³Ό ν λΉμ λΆλ¦¬μμΌ μλ‘ λμ΄μ¬λ¦½λλ€.
β example : νΈμ΄μ€ν μ
console.log(x);
var x;
β example : νΈμ΄μ€ν ν
var x;
console.log(x);
μ μΈκ³Ό λμμ λμ
νλ μ½λλ λμ΄μ¬λ¦¬μ§ μμ΅λλ€.
μ ννλ μ μΈλΆvar x
λ λμ΄ μ¬λ €μ§μ§λ§, λμ
λΆx = 5
λ λμ΄ μ¬λ €μ§μ§ μλλ€κ³ μ€λͺ
ν μ μμ΅λλ€.
β example
console.log(x); // β‘ undefined
var x = 5;
console.log(x); // β‘ 5
μμ κ°μ μ½λλ₯Ό λ€μ ꡬμ±ν΄λ³΄λ©΄,
β example
var x;
console.log(x); // β‘ undefined
x = 5;
console.log(x); // β‘ 5
λ‘ μμ±ν μ μμ΅λλ€.
νΈμ΄μ€ν μ λ€λ₯Έ μΈμ΄μλ μλ μλ°μ€ν¬λ¦½νΈλ§μ κ³ μ ν νΉμ§μ΄λ, μ΄ν΄νκΈ° μ¬μ΄ μ½λ μμ±μ μν΄μλ λ°λμ μμλΆμ λ³μλ₯Ό μ μΈνλ κ²μ΄ μ’μ΅λλ€.
λ³μ, ν¨μ, λΌλ²¨ μ΄λ¦ λ± μ¬μ©μκ° μ μνλ μ΄λ¦μ μλ³μ(identifier)
λΌκ³ ν©λλ€. μλ³μλ λ€μκ³Ό κ°μ κ·μΉμ λ°λΌμΌ ν©λλ€.
A~Z, a~z
), μ«μ(0~9
), μΈλλ°(_
), λ¬λ¬ κΈ°νΈ($
) μ¬μ© κ°λ₯β μ¬μ© κ°λ₯ν μ
sum
newValue
width
result
β μ¬μ© λΆκ°λ₯ν μ
1st
β (첫 κΈμ μ«μ) / new-value
β (νμ΄νμ μ¬μ©λΆκ°) / new
β (μμ½μ΄)
λ³μμ μ΄λ¦μ μλ³μ κ·μΉμ μ΄κΈλμ§ μλλ€λ©΄ μμ λ‘κ² μ§μ ν μ μμ΅λλ€.
κ·Έλ¬λ μΌλ°μ μΌλ‘λ λ€λ₯Έ μ¬λλ λ³μμ μλ―Έλ₯Ό μ μ μλλ‘ μΌμ ν νκΈ°λ²μ μ¬μ©νλ©°, λ€μμ μΈ κ°μ§ νκΈ°λ²μ λ§μ΄ μ¬μ©ν©λλ€.
μΊλ© νκΈ°λ²μ΄λ, λ λ²μ§Έ μ΄ν λ¨μ΄μ λλ¬Έμ λΆλΆμ΄ λνμ νΉμ²λΌ 보μΈλ€κ³ ν΄μ μ§μ΄μ§ μ΄λ¦μ
λλ€.
λ λ²μ§Έ μ΄ν λ¨μ΄μ 첫 κΈμλ₯Ό λλ¬Έμλ‘ νλ©° λλ¨Έμ§λ μλ¬Έμλ‘ νκΈ°ν©λλ€.
β example
newName
createLifeGame
νμ€μΉΌ νκΈ°λ²μ΄λ, νλ‘κ·Έλλ° μΈμ΄μΈ νμ€μΉΌ(Pascal)μμ μ¬μ©λ νκΈ°λ²μ
λλ€.
κ° λ¨μ΄μ 첫 κΈμλ₯Ό λͺ¨λ λλ¬Έμλ‘ νκΈ°ν©λλ€.
β example
NewName
CreateLifeGame
λͺ¨λ λ¨μ΄λ₯Ό μλ¬Έμλ‘ νκΈ°νλ©°, λ¨μ΄ μ¬μ΄μ¬μ΄μ μΈλλ°(_
)λ₯Ό λ£μ΄ νκΈ°ν©λλ€.
β example
new_name
create_life_game
λ³μμ μ΄λ¦μ μ§μ λλ μΌλ°μ μΌλ‘ μλμ κ°μ΄ μμ±ν©λλ€. (λͺ¨λ μλ°μ€ν¬λ¦½νΈ μ λ¬Έ λ°μ·)
MAX_SIZE
isMouseDown
μμ½μ΄
λ, μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ κ·μ μ§κΈ° μν νΉμ ν€μλλ₯Ό λ§ν©λλ€.
μμ½μ΄λ‘ μ§μ λ ν€μλλ€μ μλ³μ
λ νλ‘νΌν° μ΄λ¦
μΌλ‘ μ¬μ©νμ§ μμΌλ©°, 미리 μ μλ μ μ λ³μμ μ μ ν¨μ μμ μ¬μ©νμ§ μλ νΈμ΄ μ’μ΅λλ€. μ¬μ©νλλΌλ μ€λ₯λ λ°μνμ§ μμ§λ§, λ³Έλμ κΈ°λ₯μ μ¬μ©ν μ μκ² λ©λλ€.
λν Window
κ°μ²΄μ μ΄λ¦κ³Ό DOM
μμ μ¬μ©νλ κ°μ²΄ μ΄λ¦λ μ¬μ©νμ§ μμ΅λλ€.
μμΈν μ€λͺ μ π mdn ν€μλ μ°Έκ³ !
κΈ΄ κΈμ μμ±ν κ²½νμ΄ λ§μ§ μμ κΈ νλλ₯Ό μμ±νλλ°λ λ§μ μκ°μ΄ 걸리λ€μπ
νΉμλ μλͺ» μμ±λ λΆλΆμ΄λ λΉ μ§ λΆλΆμ΄ μλ€λ©΄ λκΈλ‘ μλ €μ£ΌμΈμ! μ½μ΄μ£Όμ
μ κ°μ¬ν©λλ€π
βͺ [mdn JavaScript] : (https://developer.mozilla.org/ko/docs/Web/JavaScript)
βͺ [tcpschool] : (http://tcpschool.com/javascript/js_datatype_variable)
βͺ λͺ¨λ μλ°μ€ν¬λ¦½νΈ μ
λ¬Έ
μμ½μμ΅λλ€ κ°μ¬ν΄μ