π€ Language/π¨ JavaScript
JS. ES6 Classes
ES6 Classes Classλ κ°μ²΄λ₯Ό μμ±νκΈ° μν ν νλ¦Ώμ΄λ€. ν΄λμ€λ λ°μ΄ν°μ μ΄λ₯Ό μ‘°μνλ μ½λλ₯Ό νλλ‘ μΆμννλλ° μλ°μ€ν¬λ¦½νΈμμ ν΄λμ€λ νλ‘ν νμ μ μ΄μ©ν΄μ λ§λ€μ΄μ‘μ§λ§ ES5μ ν΄λμ€ μλ―Έμλ λ€λ₯Έ λ¬Έλ²κ³Ό μλ―Έλ₯Ό κ°μ§λ€. const imae = { name: 'imae', normal: function () { console.log(this.name) }, arrow: () => { console.log(this.name) } } imae.normal() imae.arrow() μ€ν κ²°κ³Ό imae undefined ES6μμλ ν΄λμ€ λ¬Έλ²μ νλ΄λ΄λ κ²μ΄ κ°λ₯νλ€. prototypeμ μ°λ λμ classλ₯Ό μ¬μ©νμ¬ μμ±μ ν¨μλ₯Ό λ§λ€ μ μλ€. function User(first, l..
JS. this
this μΌλ°(Normal) ν¨μλ νΈμΆ μμΉμμ λ°λΌ this μ μ! νμ΄ν(Arrow) ν¨μλ μμ μ΄ μ μΈλ ν¨μ λ²μμμ this μ μ! const imae = { name: 'Imae', normal: function () { console.log(this.name) }, arrow: () => { console.log(this.name) } } imae.normal() imae.arrow() μ€ν κ²°κ³Ό Imae undefined λ λ€λ₯Έ μμΉμμ amyλΌλ λ³μλ₯Ό λ§λ€μ΄λ΄μ κ°μ²΄ λ°μ΄ν°λ₯Ό ν λΉνλ€. imae.normal, imae.arrow λ± μμ μλ λ°μ΄ν°λ₯Ό amyμ ν λΉλλ ꡬ쑰μ΄λ€. const amy = { name: 'Amy', normal: imae.normal, arrow: ima..
JS. μμ±μ ν¨μ(prototype)
μμ±μ ν¨μ(prototype) μμ±μ ν¨μμ μΌλ° ν¨μμ κΈ°μ μ μ°¨μ΄λ μλ€. νμ§λ§ μμ±μ ν¨μλ λ κ°μ§ κ΄λ‘λ₯Ό λ°λΌμΌ νλ€. ν¨μ μ΄λ¦μ 첫 κΈμλ λλ¬Έμλ‘ μμνλ€. λ°λμ 'new' μ°μ°μλ₯Ό λΆμ¬μ€λ€. μΌλ°μ μΈ ν¨μμ λͺ¨μ΅μ΄λ€. λν 리ν°λ΄ λ°©μμΌλ‘ μ½λκ° μμ±λλ€. 리ν°λ΄ λ°©μ μλ°μ€ν¬λ¦½νΈλ 리ν°λ΄ νκΈ°λ²μ μ΄μ©ν΄, νμν μμλ€μ μ΄κ±°νλ κ² λ§μΌλ‘ κ°μ²΄λ₯Ό λ§λ€ μ μλ€. μ΄λ¬ν νκΈ°λ²μ JSONμλ μκ°μ μ£Όμλ€. { }, [ ], " " λ±μ μλ‘ λ€ μ μλ€. const imae = { firstName: 'Imae', lastName: 'Kwak', getFullName: function () { return `${this.firstName} ${this.lastName}` } } ..
JS. μ½λ°±(CallBack)
μ½λ°±(CallBack) ν¨μμ μΈμλ‘ μ¬μ©λλ ν¨μ ex. setTimeout(ν¨μ, μκ°) μ½λ°± νμ© 'imae!'λΌλ λ¬Έμ₯μ μΆλ ₯νκ³ μ±κ³΅νλ€λ μλ―Έμμ 'Done!'μ μΆλ ₯ν κ²μΈλ° setTimeout ν¨μλ 3μ΄νμ μ€νλκΈ° λλ¬Έμ 'Done!'μ΄ λ¨Όμ λμ¨λ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ μ΄λ»κ² ν΄μΌν κΉ? function timeout (callback) { setTimeout(() => { console.log('imae!') // imae! callback() }, 3000) // 1000ms } timeout(() => { console.log('Done!') // Done! }) timeoutμ΄λΌλ ν¨μ μμ callbackμ΄λΌλ λ³μλ₯Ό μ μΈνκ³ setTimeout ν¨μ μμ callba..
JS. νμ΄λ¨Έ ν¨μ
νμ΄λ¨Έ ν¨μ μΌμ μκ°μ΄ μ§λ ν νΉμ μ½λ λλ ν¨μκ° μ€νλ μ μλλ‘ ν΄μ£Όλ ν¨μμ μΌμ μκ°λ§λ€ ν¨μκ° μ€νλ μ μλλ‘ ν΄μ£Όλ ν¨μλ₯Ό λ§νλ€. νμ΄λ¨Έ ν¨μμ μ’ λ₯ setTimeout(ν¨μ, μκ°): μΌμ μκ° ν ν¨μ μ€ν const timer = setTimeout(() => { console.log('imae!') // imae! }, 3000) // 1000ms 3μ΄ νμ 'imae!'κ° μΆλ ₯λλ€. ms λ¨μλ₯Ό μ¬μ©νλ€. clearTimeout(): μ€μ λ Timeout ν¨μλ₯Ό μ’ λ£ const h1El = document.querySelector('h1') h1El.addEventListener('click', () => { clearTimeout(timer) }) setTimeout ν¨μ..
JS. νΈμ΄μ€ν
νΈμ΄μ€ν (Hoisting) ν¨μ μ μΈλΆκ° μ ν¨λ²μ μ΅μλ¨μΌλ‘ λμ΄μ¬λ €μ§λ νμ κΈ°μ‘΄μ μμ± λ°©μμ μ μ©νλ©΄ μ½λλ₯Ό μμμ μλλ‘ μ½λλ° μ€λ₯κ° λ°μνμ§ μλ? ν¨μ μ μΈμμ μ¬μ©νλ©΄ μ€λ₯κ° λ°μνμ§ μλλ€. const a = 7 double() // 14 function double () { console.log(a * 2) } ν¨μ μ μΈμ λ°μ μμ±ν΄λ ν¨μ νΈμΆμ΄ κ°λ₯νλ€. ν¨μμλ 볡μ‘ν λ΄μ©μ΄ μλ€. ν¨μλ§ λ°λ‘ μ§μ ν΄μ μ§ν κ³Όμ μ ν΄μνκΈ° μ’λλ‘ νΈμ΄μ€ν μ μ¬μ©νλ κ²μ΄λ€. μ 체 μ½λμ μ΅νλ¨μ λμΌλ©΄ κ°λ μ±μ΄ μ’μμ§λ€.
JS. IIFE, μ¦μμ€νν¨μ
IIFE, μ¦μμ€νν¨μ νΉμ ν ν¨μλ₯Ό μ¦μ μ€νν μ μλ€. double() λ€μ μΈλ―Έμ½λ‘ (;)μ λΆμ΄μ§ μμΌλ©΄ μ€λ₯κ° λλ€. const a = 7; function double () { console.log(a * 2) }; double(); (function () { console.log(a * 2) })(); μΌλ°μ μΈ ν¨μλ μμ κ°μ λ°©λ²μΌλ‘ μμ±νλ€. νμ§λ§ μ¦μμ€νν¨μλ μκ΄νΈ(())λ‘ λ¬Άμ΄μ μμ±νλ€. μ¦μμ€νν¨μ μμ± λ°©λ² // λ°©λ² 1 (function () { console.log(a * 2) })(); // λ°©λ² 2 (function () { console.log(a * 2) }()); λ°©λ² 1κ³Ό λ°©λ² 2κ° μλ€. κΆμ₯λλ λ°©λ²μ λ°©λ² 2μ΄λ€.
JS. νμ΄νν¨μ
JS νμ΄νν¨μμ κΈ°μ‘΄ ν¨μμ μ°¨μ΄μ // νμ΄ν ν¨μ // () => {} vs function () {} const double = function (x) { return x * 2 } console.log('double: ', double(7)) // 14 const doubleArrow = (x) => { return x * 2 } console.log('doubleArrow: ', doubleArrow(7)) // 14 νμ΄νν¨μμ μ°¨μ΄μ μ function ν€μλ λμ '=>' λ₯Ό μ¬μ©νλ€. κ°μ₯ ν° μ°¨μ΄μ μ μΆμ½νμΌλ‘ μ‘°κΈμ© μ€μ¬μ€ μ μλ€. νμ΄ν ν¨μλ₯Ό μ€μ΄λ©΄ μ΄λ»κ² μ€μ΄λκ°? const doubleArrow = x => x * 2 console.log('doubleArrow: ', dou..
JS. ν¨μ
ν¨μ μ μΈκ³Ό νΈμΆ // ν¨μ μ μΈ function sum (a, b) { // μ€ν μ½λ console.log(a + b) } // ν¨μ νΈμΆ sum (1, 2) ν¨μλ νΉμ λμ(κΈ°λ₯)μ μννλ μΌλΆ μ½λμ μ§ν©μ΄λ€. μ΅λͺ ν¨μμ κΈ°λͺ ν¨μ function () {} // μ΅λͺ ν¨μ function sum () {} // κΈ°λͺ ν¨μ νΉμ ν μ΄λ¦μ΄ μλ ν¨μλ₯Ό κΈ°λͺ ν¨μλΌκ³ νλ€. κ·Έμ λ°λλ‘ νΉμ ν μ΄λ¦μ΄ μλ ν¨μλ μ΅λͺ ν¨μμ΄λ€. κΈ°λͺ ν¨μμ κ°μ κ²½μ°λ ν¨μ μ μΈμ, μ΅λͺ ν¨μλ ν¨μ ννμμ΄λΌκ³ νλ€. ν¨μ νν const a = function () {} ν¨μλ₯Ό λ³μλ‘ μ μΈνμ¬ νκΈ°νλ κ²μ ν¨μ ννμ΄λΌκ³ νλ€. μ΅λͺ ν¨μμ κ²½μ°, ν¨μ νΈμΆμ νκΈ° μν΄μλ λ³μλ‘ μ μΈν΄μ£Όμ΄μΌ νλ€. λ°ν..
JS. var, let, const, νλ³ν
π JS λ³μ μ ν¨λ²μ // λ³μ μ ν¨λ²μ // var, let, const console.log('λ³μ μ ν¨λ²μ var let const') // let , constλ λΈλ λ΄μμ μ ν¨ // varμ λλλ‘ μ¬μ© x function scope () { if (true) { var a = 123 }; console.log(a) } scope() // 123 π JS νλ³ν // νλ³ν console.log('νλ³ν') // Truthy (μ°Έκ°μ κ°) // true, {}, [], 1, 2, 'false', -12, '-3.14', ... // Falsy (κ±°μ§κ°μ κ°) // false, '', null, undefined, 0, -0, NaN const q = 1 const w = '1' console..