[JavaScript] μμν¨μ
μμν¨μ
μμν¨μλ μΈλΆ μνμ μμ‘΄νκ±°λ λ³κ²½νμ§λ μλ, μ¨μ ν λ 립μ μΈ ν¨μλ₯Ό λ§νλ€.
μ¬κΈ°μ μΈλΆμνλ μ μ λ³μλ μλ² λ°μ΄ν°, DOM λ±λ±..
μλμ κ°μ κ²½μ°μ λͺ¨λ ν΄λΉν λ μμν¨μλΌκ³ ν μ μλ€.
- λμΌν μ λ ₯μ λν΄ λμΌν μΆλ ₯μ λ°ννλ ν¨μ.
- μ¬μ΄λ μ΄ννΈκ° μλ ν¨μ
κ°μ μ λ ₯μ λν΄ κ°μ μΆλ ₯μ λ°ννλ ν¨μ
μμν¨μλ λ κ°μ μ λ ₯μ λν΄ κ°μ μΆλ ₯μ λ°ννκΈ° λλ¬Έμ, μΈμλ₯Ό μ λ¬λ°μ§ μλ ν¨μλ κ±°μ μμ κ°μ λλ.
μΈλΆ μνμ μμ‘΄νμ§ μκΈ° λλ¬Έμ λ κ°μ μΆλ ₯μ νλ€.
μλμ κ°μ΄ increase()
λΌλ ν¨μλ₯Ό λ§λ€μμ λ, μ΄ ν¨μλ μμν¨μλΌκ³ ν μ μλ€.
function increase(n){
return ++n;
}
console.log(increase(1)); // 2
console.log(increase(1)); // 2
console.log(increase(1)); // 2
μΈμ 1μ λ£μμ λ λ§€λ² 2λ‘ κ°μ κ°μ΄ μΆλ ₯λκΈ° λλ¬Έμ΄λ€.
μ΄λ° μ μμ μμν¨μλ λΆλ³μ±μ κ°μ§λ€κ³ ν μ μλ€.
random()
λ©μλ κ°μ κ²½μ°λ μΈλΆ μνμ μμ‘΄νμ§ μμ§λ§, νΈμΆλ λλ§λ€ κ°μ΄ λ³νκΈ° λλ¬Έμ μμν¨μκ° μλλ€.
Math.random(); // 0.5628074923287576
Math.random(); // 0.3794844323233928
Math.random(); // 0.33897324277365715
μ¬μ΄λ μ΄ννΈκ° μλ ν¨μ
μ¬μ΄λ μ΄ννΈ? π€
ν¨μμμ κ°μ λ°ννλ μΌ μΈμ ν¨μ μΈλΆμ μνλ λ³μλ₯Ό λ³κ²½νκ±°λ λ€λ₯Έ μΌμ μννλ κ²μ λ§νλ€.
λΉλκΈ° μ²λ¦¬, μ¬μ©μμ μ
λ ₯μ΄λ λ°μ΄ν°μ λ³κ²½, νλ©΄μ 그리λ μμ
λ±λ±
μμν¨μλ μΈμλ₯Ό ν΅ν΄μ λ΄λΆμ μΌλ‘ μνλ₯Ό λ³νμμΌ μΆλ ₯νκΈ° λλ¬Έμ μ¬μ΄λ μ΄ννΈκ° μΌμ΄λμ§ μλλ€.
μμν¨μμ μ₯μ
- μμ μ±
μ€ν μμ κ³Ό μκ΄μμ΄ λ λμΌν κ²°κ³Όλ₯Ό λ§λ€μ΄ λ΄κΈ° λλ¬Έμ μμΈ‘ν μ μλ κ²°κ³Όκ° λμ¬ μ°λ €κ° μλ€.
λΉλκΈ°μ μΈ μν©μ΄λ, λ€λ₯Έ μν©μμλ λΉμμ ν¨μμ λΉν΄μ μ’ λ μμ νλ€κ³ ν μ μλ€.
- μ‘°ν©μ±
μμ λλΆμ΄μ, λ μμΈ‘ν μ μλ κ²°κ³Όμ΄κΈ° λλ¬Έμ λ€λ₯Έ ν¨μλ€κ³Ό μ‘°ν©νμ¬ μ¬μ¬μ©νκΈ°κ° μ’λ€.
λ λμ²΄λ‘ νλμ κΈ°λ₯μ μΆ©μ€νκΈ° λλ¬Έμ μ μ§λ³΄μμ μΈ λ©΄μμλ μ’λ€.
- κ°λ μ±
μ¬μ΄λ μ΄ννΈλ₯Ό μ§μνκ³ ν¨μμ 볡μ‘μ±μ λ¨μ΄λ¨λ¦¬κΈ° λλ¬Έμ μ½λλ₯Ό μ½κ² νμ ν μ μλ€λ μ₯μ μ΄ μλ€.
κ²°κ΅ μμ ν¨μλ μ¬μ΄λ μ΄ννΈλ₯Ό μ΅λν μ§μνλ©΄μ λΆλ³μ±μ μ μ§νκ³ , λ°μν μ μλ μ€λ₯λ₯Ό λ―Έμ°μ λ°©μ§νμ¬ μμ μ±μ λμ΄κΈ° μν ν¨μλΌκ³ ν μ μμ κ² κ°λ€.
μΆμ²
λͺ¨λ μλ°μ€ν¬λ¦½νΈ λ₯λ€μ΄λΈ
https://seonhyungjo.github.io/Javascript-Book/basic/15-Pure-Functions-Side-Effects-State-Mutation.html