μ°λ¦¬λ νλ‘κ·Έλλ°μ νλ€κ° μ΄λ€ κ°μ μ¬μ¬μ©ν΄μΌνλ μν©μ μ§λ©΄ν λκ° μλ€. μ΄λ€ κ°μ μ¬μ¬μ©μ μν΄ νλ‘κ·Έλλ° μΈμ΄λ κΈ°μ΅νκ³ μΆμ κ°μ λ©λͺ¨λ¦¬μ μ μ₯νκ³ , μ μ₯λ κ°μ μ½μ΄ λ€μ¬ μ¬μ¬μ©νκΈ° μν΄ λ³μ(variable)λΌλ λ©μ»€λμ¦μ μ 곡νλ€.λ³μλ μ΄λ€ κ°μ μ μ₯
μ€μ½νλ μλ³μμ λν μ ν¨λ²μμ΄λ€. λ³μ,ν¨μ λ± λͺ¨λ μλ³μλ μμ μ΄ μ μΈλ μμΉμ μν΄ μμ μ΄ μ ν¨ν λ²μ, μ¦ λ€λ₯Έ μ½λκ° μμ μ μ°Έμ‘°ν μ μλ λ²μκ° κ²°μ λλ€. μ€μ½ν μμμ μ μΈλ μλ³μλ μ€μ½ν μμμλ μ°Έμ‘°ν μ μμ§λ§ μ€μ½ν λ°μμλ μ°Έμ‘°ν μ μλ€.
μ€ν 컨ν μ€νΈλ 무μμΌκΉ?
thisλ μμ μ΄ μν κ°μ²΄ λλ μμ μ΄ μμ±ν μΈμ€ν΄μ€λ₯Ό κ°λ¦¬ν€λ μκΈ° μ°Έμ‘° λ³μ(self-referencing variable)λ€. λ€λ₯Έ μΈμ΄μ thisμλ λ¬λ¦¬ μλ°μ€ν¬λ¦½νΈμ thisλ μ΄λμλ μ¬μ©ν μ μλ€. μλ°μ€ν¬λ¦½νΈμ thisλ μ€ν 컨ν μ€νΈλ₯Ό μμ±ν λ
μλ°μ€ν¬λ¦½νΈμ κ°μ²΄λ 무μμΌκΉ?
μλ°μ€ν¬λ¦½νΈλ λͺ λ Ήν(imperative), ν¨μν(functional), νλ‘ν νμ κΈ°λ°(prototype-based) κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(OOP, Object Oriented Programming)μ μ§μνλ λ©ν° ν¨λ¬λ€μ νλ‘κ·Έλλ° μΈμ΄λ€. μλ°μ€ν¬λ¦½νΈλ ν΄λμ€
μ°λ¦¬λ μλ°μ€ν¬λ¦½νΈμ νλ‘ν νμ κΈμμ κ°μ²΄μ§ν₯μ΄ λ¬΄μμΈμ§ 곡λΆνλ€. λ€μ μ½κ³ μ€κΈ° μ«μ μ¬λλ€μ μν΄ μμ½νλ©΄ κ°μ²΄μ§ν₯μ΄λ, λ 립μ μΈ κ°μ²΄λ€μ μ§ν©μΌλ‘ νλ‘κ·Έλ¨μ νννλ €λ νλ‘κ·Έλλ° ν¨λ¬λ€μμ΄λ€.μ¬κΈ°μ ν΄λμ€λ κ°μ²΄λ₯Ό μμ±ν μ μλ μΆμμ μΈ λμ νΉμ ꡬ체μ μΈ
μ½λλΈλ μμ μμ±λ νΉμ νλμ νΈμΆλμ΄ νλλ‘ νλ κ°μ²΄μ΄λ€. λλ μΌλ ¨μ κ³Όμ μ λ¬ΈμΌλ‘ ꡬννκ³ μ½λ λΈλ‘μΌλ‘ κ°μΈμ νλμ μ€ν λ¨μλ‘ μ μν κ²μ΄λ€. ν¨μλ ν¨μ μ μ(function definition)μ ν΅ν΄ μμ±νλ©°, μΈμ(argument)λ₯Ό 맀κ°λ³μλ₯Ό ν΅
μ΄ κΈμ μ½μ λλ μ€ν 컨ν μ€νΈμ μ€μ½νμ λν κ°λ μ νμλ‘ νλ€. μ΄λ―Έ λ΄κ° μ¨λ μ€ν 컨ν μ€νΈμ μ€μ½ν κΈμ μ½μλ€λ©΄ μκ΄μκ² μ§λ§ μμ§ μ΄ν΄κ° μ λκ±°λ, μ½μ§ μμλ€λ©΄ μ½κ³ μ€κΈ°λ₯Ό λ°λλ€.β‘οΈ μλ°μ€ν¬λ¦½νΈμ μ€μ½ν, μλ°μ€ν¬λ¦½νΈμ μ€ν 컨ν μ€νΈμ½κ³ μλ€κ³ μκ°
λΈλΌμ°μ λ μ²λ¦¬ν΄μΌ ν νΉμ μ¬κ±΄μ΄ λ°μνλ©΄ μ΄λ₯Ό κ°μ§νμ¬ μ΄λ²€νΈλ₯Ό λ°μμν¨λ€. λ§μ½ μ΄ λ μ΄λ²€νΈμ λν΄ λ°μνμ¬ μ΄λ€ μΌμ νκ³ μΆλ€λ©΄ μ΄λ²€νΈκ° λ°μνμ λ νΈμΆλ ν¨μλ₯Ό λΈλΌμ°μ μκ² μλ € νΈμΆμ μμνλ€. μ°λ¦¬λ μ΄λ²€νΈ νΈλ€λ¬λ₯Ό ν΅ν΄ μ΄λ²€νΈκ° λ°μνμ λ μνλ
Ajax(Asynchronus JavaScript and XML)λ μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ λΈλΌμ°μ κ° μλ²μκ² λΉλκΈ° λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό μμ²νκ³ μλ²κ° μλ΅ν λ°μ΄ν°λ₯Ό μμ νμ¬ μΉνμ΄μ§λ₯Ό λμ μΌλ‘ κ°±μ νλ νλ‘κ·Έλλ° λ°©μμ λ§νλ€. Ajaxλ λΈλΌμ°μ μμ μ 곡νλ We
ES6 μμ λμ λ μ΄ν°λ μ΄μ νλ‘ν μ½(iteration protocol)μ μν κ°λ₯ν μλ£κ΅¬μ‘°λ₯Ό λ§λ€κΈ° μν΄ ECMAScript μ¬μμ μ μνμ¬ λ―Έλ¦¬ μ½μν κ·μΉμ΄λ€. ES6 μ΄μ μ μν κ°λ₯ν μλ£κ΅¬μ‘°λ€μ ν΅μΌλ κ·μ½ μμ΄ κ°μ λλ¦μ ꡬ쑰λ₯Ό κ°μ§κ³ λ€μν λ°©λ²μΌ
π€ λΈλΌμ°μ λ λλ§ κ³Όμ μ λν΄μ μλ°μ€ν¬λ¦½νΈμ AJAXμμ μ΄ν΄λ³Έ λ΄μ©μ μνλ©΄ AJAXλ₯Ό ν΅ν΄ λΈλΌμ°μ λ μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ μλ²μκ² λΉλκΈ°λ‘ λ°μ΄ν°λ₯Ό μμ²νκ³ , μλ²μ μλ΅μ λ°μ, λ°μ λ°μ΄ν°λ‘ μΉνμ΄μ§λ₯Ό λμ μΌλ‘ κ°±μ νκ² λλ€λ κ²μ μκ²λμλ€. μ΄λ²
μλ°μ€ν¬λ¦½νΈ κ°λ°μλΌλ©΄ ECMAScriptμ λν΄μλ λͺ¨λ λ€μ΄λ΄€μ κ²μ΄λ€. μμΈν μμ보λ κ²μ μλμ λͺ©μ°¨μμ μ΄ν΄λ³΄κ³ , μ΄ κ³³μμλ Javascriptμ ECMAScriptμ μ°¨μ΄λ§ κ°λ³κ² μ§κ³ λμ΄κ°μ. Javascriptλ νλ‘κ·Έλλ° μΈμ΄μ μ΄λ¦μ΄κ³ , ECMA
μΌλ§ μ , μ°μννμ λ€ κΈ°μ λ©΄μ μμ βνλ‘ν νμ μ μ₯μ μ 무μμΈκ°μ?β λΌλ μ§λ¬Έμ λ°μλ€. λμ λ΅λ³μ΄ λΆμ‘±ν λΆλΆμ΄ λ§μλ κ² κ°μκ³ μ무λλ μλ°μ€ν¬λ¦½νΈμ μ½μ΄ν κ°λ μ΄κΈ°λ νλ§νΌ λ€μ κΉκ² νλ³΄λ €κ³ μ΄ κΈμ μ°κ² λμλ€. νλ‘ν νμ μ μ₯λ¨μ μ μ΄ν΄λ³΄κΈ° μν΄ μ΄