JavaScript λΉλκΈ° μ²λ¦¬μλ°μ€ν¬λ¦½νΈ λΉλκΈ° μ²λ¦¬μλ°μ€ν¬λ¦½νΈλ μ±κΈ μ€λ λ κΈ°λ°μ μΈμ΄λ‘, ν λ²μ νλμ μμ
λ§ μ²λ¦¬ν μ μλ€. νμ§λ§ λΉλκΈ° μ²λ¦¬ λ°©μμ ν΅ν΄ λ³λ ¬ μμ
μ΄ κ°λ₯ν΄ λ³΄μ΄κ² λ§λ€ μ μλ€. μ£Όλ‘ I/O μμ
(λ€νΈμν¬ μμ², νμΌ μ½κΈ° λ±)μ΄λ νμ΄λ¨Έμ κ°μ μκ°μ΄ μ€λ 걸리λ μμ
μμ μ¬μ©λλ€. λκΈ°μ (Synchronous) μ²λ¦¬ : νλμ μμ
μ΄ μλ£λ λκΉμ§ λ€μ μμ
μ μμνμ§ μλ λ°©μ. μ¦ μμ
μ΄ μμ°¨μ μΌλ‘ μ§νλλ€. console.log("Start");for (let i = 0; i μ μ½λλ `for`루νκ° λλ λ κΉμ§ λ€λ₯Έ μμ
μ΄ μ€νλμ§ μκ³ κΈ°λ€λ¦°λ€. μ¦, "End"κ° μΆλ ₯λκΈ° μ κΉμ§ λͺ¨λ μμ
μ΄ λ©μΆ μνλ‘ λκΈ°νκ² λλ€. CPUλ₯Ό λ
μ νκΈ° λλ¬Έμ, κΈ΄ μ..
π»DEV-STUDY/JavaScript
νλ + λ©μλκ°μ²΄ = νλ + λ©μλ (νλ‘νΌν° μ§ν©)μλ°μ€ν¬λ¦½νΈμμ κ°μ²΄λ νλ(λ°μ΄ν°)μ λ©μλ(λμ)λ₯Ό ν¬ν¨ν νλ‘νΌν°λ€μ μ§ν©μΌλ‘ μ μλλ€.HTML (DOM) κ°μ²΄: μμ(Element = κ°μ²΄) = μμ±(Attribute = νλ‘νΌν°) + Contentμμ: ``μμ±: ``λ©μλ ννλ²: Default & Shortenμλ°μ€ν¬λ¦½νΈμμ κ°μ²΄μ λ©μλλ λ κ°μ§ λ°©μμΌλ‘ μ μν μ μλ€. 1. Default(κΈ°λ³Έ) ννλ²var person = { name: "CheonSang", sayName: function() } console.log(this.name); }};`sayName` λ©μλλ `function` ν€μλλ₯Ό μ¬μ©νμ¬ μ μλλ€.2. Shorten(κ°λ΅) ννλ² (ES..
λ©΄μ λ¨κ³¨ μ§λ¬Έ"this"λ©΄μ λ¨κ³¨ μ§λ¬Έ μ€ νλμΈ "ν¨μ λ΄ `this`μ λ©μλ λ΄ `this`μ μ°¨μ΄"μ λν΄ μ€λͺ
νλ©΄μ JSμμ `this` λ°μΈλ© λ°©μμ λν΄ μ‘°κΈ λ κΉμ΄ μ΄ν΄λ³΄κ² λ€. μλ°μ€ν¬λ¦½νΈ ν¨μλ ν¬κ² μΌλ° ν¨μμ νμ΄ν ν¨μλ‘ λλ μ μμΌλ©°, μ΄ λμ `this` λ°μΈλ© λ°©μμμ ν° μ°¨μ΄κ° μλ€.μΌλ° ν¨μλ ν¨μλ‘λ μ¬μ©λ μ μκ³ , λ©μλλ‘λ μ¬μ©λ μ μλ€.μΌλ° ν¨μ ννμ λ΄ `this`: λμ λ°μΈλ© (Dynamic Scope)μΌλ° ν¨μμ `this`λ ν¨μκ° νΈμΆλ λμ 컨ν
μ€νΈμ λ°λΌ κ²°μ λλ€.μ¦, λμ λ°μΈλ©μ΄ μ΄λ£¨μ΄μ§λ©° ν¨μκ° νΈμΆλ κ°μ²΄μ λ°λΌ `this`κ° λ¬λΌμ§λ€. ν¨μ: μ μμμ νΈμΆλ ν¨μ λ΄ `this` → 무μ§μ± window(global)function ..
function func() { }const func = () => { };μλ°μ€ν¬λ¦½νΈ ν¨μ μμ± λ°©λ²ν¨μ μμ±νλ λ°©λ²μ μ΄ 3κ°μ§λ‘ λΆλ₯νλ€. 1. ν¨μ μ μΈλ¬Έ (Function Declaration)2. ν¨μ ννμ (Function Expression)3. νμ΄ν ν¨μ (Arrow Function) κ·Έ λ°μ μΆκ°μ μΈ λ΄μ©μ ν¬μ€ν
μ λ΄λλ‘ ν μμ μ΄λ€. ν¨μ μ μΈλ¬Έ(Function Declaration)κ°μ₯ κΈ°λ³Έμ μΈ ν¨μ μμ± λ°©λ²μΌλ‘, `function ν¨μλͺ
() { }`μ μ¬μ©νλ©° ν¨μ μ μΈλ¬Έμ ν΅ν΄ ν¨μλ₯Ό μ μνκ³ μ΄λμλ νΈμΆ κ°λ₯νλ€.ν¨μ νΈμ΄μ€ν
μ΄ μΌμ΄λλ€. →ν¨μ μ μΈ μ μ νΈμΆ κ°λ₯.example() // ν¨μ νΈμ΄μ€ν
function example() { console.log('..
Execution Contextμλ°μ€ν¬λ¦½νΈ μμ§μ μ½λκ° μμ±λ μλ°μ€ν¬λ¦½νΈ νμΌμ κ·Έλλ‘ μ€ννλ κ²μ΄μλλΌ, μ¬μ€μ ν¨μμ μ€ν λ°©μκ³Ό λΉμ·ν μλ¦¬λ‘ μλνλ€. μλ°μ€ν¬λ¦½νΈ μμ§μ μ€ν¬λ¦½νΈ νμΌμ ꡬλν λ κΈ°λ³Έμ μΌλ‘ λ κ°μ§ μ£Όμ λ¨κ³λ₯Ό κ±°μΉλ€.Creation (Pre-parsing) Phase: μ€ννκΈ° μ μ λ³μμ ν¨μκ° μ΄λ€ κ²μΈμ§ λΆμνκ³ νμν λ©λͺ¨λ¦¬ 곡κ°μ μμ½νλ€.Execution Phase: λ³μμ κ°μ ν λΉνκ³ ν¨μκ° μ€μ λ‘ μ€νλλ€.μλ°μ€ν¬λ¦½νΈ μμ§ κ΅¬μ±: Stack + Heapμλ°μ€ν¬λ¦½νΈ μμ§μ Stack + Heap λκ°λ§ κΈ°μ΅νλ©΄ λλ€. μλ°μ€ν¬λ¦½νΈ ν¨μ λμμ리λ λ§μ°¬κ°μ§λ‘ λκ°λ§ κΈ°μ΅νμ.Stack(μ€ν): ν¨μ νΈμΆ μμλλ‘ ν¨μκ° μ μ₯λκ³ μ€νλλ κ³΅κ° = μ€ν 컨ν
μ€..
"Hoisting"Hoisting ?본격μ μΈ ν¬μ€ν
μ μμ Hoisting(νΈμ΄μ€ν
)μ΄λΌλ κ°λ
μ λ¨Όμ μ΄ν΄νλ κ²μ΄ μ€μνλ€. μ΄μ: Hoisting `λͺ
μ¬` λμ΄ μ¬λ¦¬κΈ°, λ€μ΄μ¬λ € λλ₯΄κΈ° Hoisting(νΈμ΄μ€ν
)μ λ³μ μ μΈκ³Ό ν¨μ μ μΈμ΄ μ½λ μ€ν μ μ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ μ΅μλ¨μΌλ‘ λμ΄ μ¬λ €μ§λ νμμ λ§νλ€. μλ°μ€ν¬λ¦½νΈ μ½λκ° μμ±λ μμλλ‘ μ€νλλ κ²μ²λΌ 보μ΄μ§λ§, μ€μ λ‘λ μ μΈκ³Ό μ΄κΈ°νκ° λ―Έλ¦¬ μ²λ¦¬λκΈ° λλ¬Έμ μμμΉ λͺ»ν λμμ κ²½νν μ μλ€. μ½λκ° μ€νλκΈ° μ μ λ³μ μ μΈκ³Ό ν¨μ μ μΈμ΄ μ½λμ μ΅μλ¨μΌλ‘ μ΄λλλ€. μ΄λ μ μΈλ§ μ΄λλλ©°, λ³μμ κ° ν λΉμ νΈμ΄μ€ν
λμ§ μλλ€.JavaScript νΈμ΄μ€ν
μ μΈν°ν리ν°κ° μ½λλ₯Ό μ€ννκΈ° μ μ ν¨μ, λ³μ, ν΄λμ€ λλ μν¬νΈ(i..
What is Functional Programming?ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμλ°μ€ν¬λ¦½νΈλ ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμ μΆκ΅¬νλ©° μΆκ°λ‘ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° ν¨λ¬λ€μλ μ§μνλ€.κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° ν¨λ¬λ€μμ μ¬λ¬ ν¨ν΄μ μ μ©νλ €λ©΄ ν΄λμ€(μμ)μ κ°μ²΄λ₯Ό νμ©ν μ μλ€.νμ
μ€ν¬λ¦½νΈλ₯Ό ν΅ν΄ μΈν°νμ΄μ€(λ€νμ±)λ₯Ό λμ
ν μ μλ€.λ°λΌμ μλ° κ°λ°μκ° κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ λͺ¨λ μ΄ν΄νλ κ²κ³Ό κ°μ΄ μλ°μ€ν¬λ¦½νΈ κ°λ°μκ° μ λλ‘ κ°λ°νκΈ° μν΄μ ν¨μν νλ‘κ·Έλλ°μ λν λͺ¨λ μ΄ν΄κ° νμνλ€. μΌκΈν¨μ: ν¨μ λ³μ + ν¨μ νλΌλ―Έν° + ν¨μ λ°νμΌκΈν¨μλ, μΌκΈ κ°μ²΄λ‘ μ·¨κΈλλ κ°λ
μ΄λ€. ν¨μκ° λ§μΉ μ«μλ λ¬Έμμ΄μ²λΌ μΌλ°μ μΈ κ°μΌλ‘ λ€λ£¨μ΄μ§ μ μλ€λ μλ―Έ.μΌκΈ ν¨μλ₯Ό μ§μνλ μΈμ΄λ ν¨μλ₯Ό λ³μμ μ μ₯νκ±°λ..
μλ°μ€ν¬λ¦½νΈ λ°νμκ³Ό μμ§: μΉκ³Ό μλ²μμμ λμ μ리 μλ°μ€ν¬λ¦½νΈλ μΉκ³Ό μλ² μμͺ½μμ μ€μν μν μ νλ μΈμ΄λ€. μλ°μ€ν¬λ¦½νΈκ° μ΄λ»κ² μ€νλλμ§λ₯Ό μ΄ν΄νκΈ° μν΄μλ μλ°μ€ν¬λ¦½νΈ λ°νμκ³Ό μλ°μ€ν¬λ¦½νΈ μμ§μ κ°λ
μ μμμΌ νλ€. μλ°μ€ν¬νΈ λ°νμ: μμ§κ³Ό API μλ°μ€ν¬λ¦½νΈ λ°νμμ μλ°μ€ν¬λ¦½νΈ μ½λκ° μ€νλλ νκ²½μ λ§νλ©°, ν¬κ² μλ°μ€ν¬λ¦½νΈ μμ§κ³Ό **API(λΌμ΄λΈλ¬λ¦¬ λ° λ°μ΄λ리)**λ‘ κ΅¬μ±λλ€. μλ°μ€ν¬λ¦½νΈ λ°νμμ μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό κΈ°κ³μ΄λ‘ λ³ννκ³ μ€ννλ μν μ νλ©°, μ΄ κ³Όμ μμ νμν APIμ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν¨κ» μ 곡νλ€.μλ°μ€ν¬λ¦½νΈ μμ§: μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό μ½κ³ , μ΄λ₯Ό κΈ°κ³μ΄λ‘ λ³ννμ¬ μ€ννλ μν μ νλ€. μλ₯Ό λ€μ΄, κ΅¬κΈ ν¬λ‘¬μ V8 μμ§μ΄ λνμ μΈ μλ°μ€ν¬λ¦½νΈ μμ§μ΄λ€.JS..