λͺ©λ‘2022/01/11 (8)
whatisthis?
___ >> μ€ν 컨ν μ€νΈ + νΈμΆμ€ν μ λν΄ ν¬μ€ν ν κΈμ λ¨Όμ μ°Έκ³ νμ. javaScript. μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ(Execution Context)λ scope, hoisting, this, function, closure λ±μ λμμ리λ₯Ό λ΄κ³ μλ μλ°μ€ν¬λ¦½νΈμ ν΅μ¬μ리μ΄λ€. var name = 'zero'; // μ μλ³μ.. mywebproject.tistory.com javaScript. νΈμΆ μ€ν ___ >> μ€ν 컨ν μ€νΈμ λν΄ ν¬μ€ν ν κΈμ λ¨Όμ μ°Έκ³ νμ. javaScript. μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ(..
___ >> μ€ν 컨ν μ€νΈμ λν΄ ν¬μ€ν ν κΈμ λ¨Όμ μ°Έκ³ νμ. javaScript. μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ(Execution Context)λ scope, hoisting, this, function, closure λ±μ λμμ리λ₯Ό λ΄κ³ μλ μλ°μ€ν¬λ¦½νΈμ ν΅μ¬μ리μ΄λ€. var name = 'zero'; // μ μλ³μ.. mywebproject.tistory.com ___ μ€ν 컨ν μ€νΈλ μ€ν(Stack)κ³Ό λΉμ·ν ꡬ쑰μμ μ μ μλ€. μ¬κΈ°μ μ€ν(Stack)μ΄λ μ½κ² λ§ν΄μ, νμ μ μΆ(LIFO)λΌκ³ ν μ μλ€. (λ°λλλ κ°λ μΌλ‘λ ν(Queue) - μ μ μ μΆ(FIFO) κ° μλ€.) [μλ£κ΅¬μ‘°] νμ μ€ν..
Stack LIFO (Last In First Out) Queue FIFO (First In First Out) π‘ μ€ν(Stack) - κ°μ ꡬ쑰μ ν¬κΈ°μ μλ£λ₯Ό μ ν΄μ§ λ°©ν₯μΌλ‘λ§ μμ μ μμ - topμΌλ‘ μ ν κ³³μ ν΅ν΄μλ§ μ κ·Ό κ°λ₯ (μμμλΆν°) - μ λ°μ΄ν° μ½μ λ topμ ν΅ν΄μλ§ κ°λ₯ = push - μμ λ topμ ν΅ν΄μλ§ κ°λ₯ = pop >> λΉμ΄μλ μ€νμμ μΆμΆμ : stack underflow μ€νμ΄ κ½ μ°¨μ λμΉ μ : stack overflow >> νμ© λΆμΌ - μΉλΈλΌμ°μ λ°©λ¬ΈκΈ°λ‘ (κ°μ₯ λμ€μ μ΄λ¦° νμ΄μ§λΆν°) - μμ λ¬Έμμ΄ μμ± - λ€λ‘κ°κΈ° (undo) -> history.back() π‘ ν(Queue) - μ€μ μμ κΈ°λ€λ¦¬λ κ². μ μ μ μΆ (FIFO) - νμͺ½ λμμλ ..
___ >> Lexical scopingμ λν΄ ν¬μ€ν ν κΈμ λ¨Όμ μ°Έκ³ νμ. javaScript. ν¨μ μ€μ½ν(scope) μλ°μ€ν¬λ¦½νΈμμ ECMAscript 5 μ΄μ μλ varλ‘ μ μΈν λ³μλ‘ λ°μ΄ν°λ₯Ό μ μ₯νμλ€. (ECMA5μ΄νμλ constμ letμ΄ λ±μ₯νμλ€. νμ¬ varμ μ¬λ§ν΄μ μ°μ§ X) varλ‘ μ μ(global)λ³μλ₯Ό λ§λλ κ²μ μΌκ°μΌ mywebproject.tistory.com ___ ν΄λ‘μ (Closure) - ν¨μμ ν¨μκ° μ μΈλ μ΄νμ νκ²½μ μ‘°ν© - λΉκ³΅κ° λ³μλ₯Ό κ°μ§ μ μλ νκ²½μ μλ ν¨μ ** λΉκ³΅κ° λ³μλ? ν΄λ‘μ ν¨μ λ΄λΆμ μμ±ν ν¨μλ μλκ³ , 맀κ°λ³μλ μλ λ³μ. var makeClosure = function() { var name = 'zero'; re..
javaScript. μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ(Execution Context)λ scope, hoisting, this, function, closure λ±μ λμμ리λ₯Ό λ΄κ³ μλ μλ°μ€ν¬λ¦½νΈμ ν΅μ¬μ리μ΄λ€. var name = 'zero'; // μ μλ³μ.. mywebproject.tistory.com μ§λ ν¬μ€ν μμ μ€ν 컨ν μ€νΈ(Execution Context)μ λν΄ μμ보μλ€. μ€ν 컨ν μ€νΈμ μ μ μ€μ½ν(Lexical Scoping)μ μ΄ν΄νλ©΄ 'νΈμ΄μ€ν 'μ΄ λ¬΄μμΈμ§ λΆμν μ μλ€. Hoisting(νΈμ΄μ€ν ) - λ³μλ₯Ό μ μΈνκ³ μ΄κΈ°ννμ λ μ μΈλΆλΆμ΄ μ΅μλ¨μΌλ‘ λμ΄μ¬λ €μ§λ νμ. - ν¨μ μμ μλ ..
ν¨μ μ μΈ λ°©μ = ν¨μκ° λ 립λ ꡬ문 ννλ‘ μ‘΄μ¬. ν¨μ ννμ λ°©μ = ν¨μκ° ννμμ μΌλΆλ‘ μ‘΄μ¬. ν¨μμ μΈμ (function Declaration) - μ§μ λ 맀κ°λ³μ(parameter)λ₯Ό κ°λ ν¨μλ₯Ό μ μ SYNTAX function name([param[, param,[..., param]]]) { [statements] } ν¨μννμ (function Expression) - μ΄λ€ ννμ(expression) λ΄μμ ν¨μλ₯Ό μ μ - ν¨μλ₯Ό μμ±νκ³ λ³μμ κ°μ ν λΉνλ κ²μ²λΌ ν¨μκ° λ³μμ ν λΉ - ν¨μ = κ°(value)μ΄ λλ―λ‘ ν¨μλ₯Ό κ°μ²λΌ alertλ console.logν΄μ μ½λλ₯Ό μΆλ ₯ν μ μμ. SYNTAX var myFunction = function [name]([param..
μ€ν 컨ν μ€νΈ (Execution Context) μ€ν 컨ν μ€νΈ(Execution Context)λ scope, hoisting, this, function, closure λ±μ λμμ리λ₯Ό λ΄κ³ μλ μλ°μ€ν¬λ¦½νΈμ ν΅μ¬μ리μ΄λ€. var name = 'zero'; // μ μλ³μ function wow(word) { // wordλ parameter console.log(word + ' ' + name); // } function say () { // var name = 'nero'; // μ§μλ³μ name μ μΈ console.log(name); // 'nero' wow('hello'); // console.log('hello zero') } say(); // nero, hello zero - Lexical..
IIFE μ¦μ μ€ν ν¨μ νν(IIFE, Immediately Invoked Function Expression)μ μ μΈνμλ§μ μ¦μ μ€νλλ Javascript Function λ₯Ό λ§νλ€. λ€λ₯Έ λ§λ‘ λͺ¨λ ν¨ν΄(Module Pattern)μ΄λΌκ³ λ ν¨. SYNTAX (function () { statements })(); ( function() {} )(); μ΄λ Self-Executing Anonymous Function μΌλ‘ μλ €μ§ λμμΈ ν¨ν΄μ΄κ³ ν¬κ² λ λΆλΆμΌλ‘ ꡬμ±λλ€. 첫 λ²μ§Έλ κ΄νΈ((), Grouping Operator)λ‘ λλ¬μΈμΈ μ΅λͺ ν¨μ(Anonymous Function)μ΄λ€. μ΄λ μ μ μ€μ½νμ λΆνμν λ³μλ₯Ό μΆκ°ν΄μ μ€μΌμν€λ κ²μ λ°©μ§ν μ μμ λΏ μλλΌ IIFE λ΄λΆμμΌλ‘ λ€..