λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ°˜μ‘ν˜•

javascript23

ν•¨μˆ˜ μ„ μ–Έλ¬Έκ³Ό ν•¨μˆ˜ ν‘œν˜„μ‹ ν•¨μˆ˜ μ„ μ–Έλ¬Έ function μ •μ˜λΆ€λ§Œ μ‘΄μž¬ν•˜κ³  λ³„λ„μ˜ ν• λ‹Ή λͺ…령이 μ—†λŠ” 것을 μ˜λ―Έν•œλ‹€. λ°˜λ“œμ‹œ ν•¨μˆ˜λͺ…이 μ •μ˜λΌ μžˆμ–΄μ•Ό ν•œλ‹€. (κΈ°λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹) κΈ°λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹μ€ μ£Όμ˜ν•  점이 ν•˜λ‚˜ μžˆλ‹€. λ°”λ‘œ μ™ΈλΆ€μ—μ„œλŠ” ν•¨μˆ˜λͺ…μœΌλ‘œ ν˜ΈμΆœν•  수 μ—†λ‹€λŠ” 점이닀. ν•¨μˆ˜λͺ…은 였직 ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œλ§Œ μ ‘κ·Όν•  수 μžˆλ‹€. ν•¨μˆ˜ ν‘œν˜„μ‹ μ •μ˜ν•œ function을 λ³„λ„μ˜ λ³€μˆ˜μ— ν• λ‹Ήν•˜λŠ” 것 ν•¨μˆ˜λͺ…이 μ •μ˜λ˜μ§€ μ•Šμ•„λ„ λœλ‹€. (읡λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹) 일반적으둜 ν•¨μˆ˜ ν‘œν˜„μ‹μ€ 읡λͺ… ν•¨μˆ˜ ν‘œν˜„μ‹μ„ λ§ν•œλ‹€. πŸŽˆν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” μ„Έ 가지 방식 function a () { } // ν•¨μˆ˜ μ„ μ–Έλ¬Έ. ν•¨μˆ˜λͺ… aκ°€ 곧 λ³€μˆ˜λͺ… a(); // μ‹€ν–‰ var b = function () { } // (읡λͺ…) ν•¨μˆ˜ ν‘œν˜„μ‹. λ³€μˆ˜λͺ… bκ°€ 곧 ν•¨μˆ˜λͺ… b(); // μ‹€ν–‰ var.. 2021. 11. 16.
await, async, promise πŸ“ž λΉ„λ™κΈ°λž€? νŠΉμ • μ½”λ“œμ˜ 연산이 끝날 λ•ŒκΉŒμ§€ μ½”λ“œμ˜ 싀행을 λ©ˆμΆ”μ§€ μ•Šκ³  λ‹€μŒ μ½”λ“œλ₯Ό λ¨Όμ € μ‹€ν–‰ν•˜λŠ” 것. ex) ajax, setTimeout(), callback πŸ‘‰πŸ» 비동기 μ²˜λ¦¬κ°€ ν•„μš”ν•œ 이유? ν™”λ©΄μ—μ„œ μ„œλ²„λ‘œ 데이터λ₯Ό μš”μ²­ν–ˆμ„λ•Œ μ„œλ²„κ°€ μ–Έμ œ κ·Έ μš”μ²­μ— λŒ€ν•œ 응닡을 쀄지 λͺ¨λ₯΄λŠ”데 마λƒ₯ 기닀릴 순 μ—†κΈ° λ•Œλ¬Έμ΄λ‹€. λ˜ν•œ, JavaScriptλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ 언어이기 λ•Œλ¬Έμ— 비동기 μ²˜λ¦¬κ°€ ν•„μˆ˜μ μ΄λ‹€. πŸ“ž await, async promise의 λ¬Έμ œμ μ„ λ³΄μ™„ν•˜κΈ° μœ„ν•΄ κ°€μž₯ μ΅œκ·Όμ— λ‚˜μ˜¨ 비동기 처리 문법. 기쑴의 callbackμ΄λ‚˜promise의 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ‘Œλ‹€. ex) callback 지μ˜₯, then() 지μ˜₯ await와 asyncλŠ” 주둜 같이 쓰인닀. κΈ°μ‘΄ 동기식 처리의 단점을 λ³΄μ™„ν•˜κ³  가독.. 2021. 11. 10.
[JavaScript] undefined, null, undeclared πŸ„ undefined (λ―Έμ •μ˜ λ³€μˆ˜) 값을 λŒ€μž…ν•˜μ§€ μ•Šμ€ λ³€μˆ˜, 즉 데이터 μ˜μ—­μ˜ λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό μ§€μ •ν•˜μ§€ μ•Šμ€ μ‹λ³„μžμ— μ ‘κ·Όν•  λ•Œ 객체 λ‚΄λΆ€μ˜ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•˜λ €κ³  ν•  λ•Œ return문이 μ—†κ±°λ‚˜ ν˜ΈμΆœλ˜μ§€ μ•ŠλŠ” ν•¨μˆ˜μ˜ μ‹€ν–‰ κ²°κ³Ό πŸ„ null μ‚¬μš©μžκ°€ λͺ…μ‹œμ μœΌλ‘œ 'μ—†μŒ'을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ λŒ€μž…ν•œ κ°’ nullμ΄λΌλŠ” 빈 값을 ν• λ‹Ήν•˜λ©΄ ν•΄λ‹Ή λ³€μˆ˜μ˜ νƒ€μž…μ€ 객체가 λœλ‹€. πŸ„ undeclared (λ―Έμ„ μ–Έ λ³€μˆ˜) λ³€μˆ˜ μ„ μ–Έμ‘°μ°¨ λ˜μ–΄ μžˆμ§€ μ•Šμ€ μƒνƒœ 2021. 11. 5.
[JavaScript] scope, scope chain 🎈 μŠ€μ½”ν”„(scope) μ‹λ³„μžμ— λŒ€ν•œ μœ νš¨λ²”μœ„. ex) μ–΄λ–€ 경계 A의 μ™ΈλΆ€μ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜λŠ” A의 외뢀뿐 μ•„λ‹ˆλΌ A의 λ‚΄λΆ€μ—μ„œλ„ 접근이 κ°€λŠ₯ν•˜μ§€λ§Œ, A의 λ‚΄λΆ€μ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜λŠ” 였직 A의 λ‚΄λΆ€μ—μ„œλ§Œ μ ‘κ·Όν•  수 μžˆλ‹€. scope의 κ°œλ…μ€ λŒ€λΆ€λΆ„μ˜ 언어에 μ‘΄μž¬ν•œλ‹€. λ‹€λ§Œ ES5κΉŒμ§€μ˜ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” νŠΉμ΄ν•˜κ²Œλ„ 전역곡간을 μ œμ™Έν•˜λ©΄ 였직 ν•¨μˆ˜μ— μ˜ν•΄μ„œλ§Œ scopeκ°€ μƒμ„±λœλ‹€. 🎈 μŠ€μ½”ν”„ 체인(scope chain) scopeλ₯Ό μ•ˆμ—μ„œλΆ€ν„° λ°”κΉ₯으둜 μ°¨λ‘€λ‘œ κ²€μƒ‰ν•΄λ‚˜κ°€λŠ” 것 μ—¬λŸ¬ scopeμ—μ„œ λ™μΌν•œ μ‹λ³„μžλ₯Ό μ„ μ–Έν•œ κ²½μš°μ—λŠ” 무쑰건 scope chain μƒμ—μ„œ κ°€μž₯ λ¨Όμ € 발견된 μ‹λ³„μžμ—λ§Œ μ ‘κ·Ό κ°€λŠ₯ν•˜κ²Œ λœλ‹€. μŠ€μ½”ν”„ 체인 예제 var a = 1; var outer = function () { var inner = f.. 2021. 10. 29.
[JavaScript] μ „μ—­ λ³€μˆ˜, 지역 λ³€μˆ˜ 🎈 μ „μ—­ λ³€μˆ˜(Global Variable) μ „μ—­ κ³΅κ°„μ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜. ν•¨μˆ˜ μ™ΈλΆ€μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λ‘œ, ν”„λ‘œκ·Έλž¨ μ „μ²΄μ—μ„œ μ ‘κ·Όν•  수 μžˆλŠ” λ³€μˆ˜. μ „μ—­ μ»¨ν…μŠ€νŠΈμ— λ‹΄κΈ΄ λ³€μˆ˜. μ•ˆμ „ν•œ μ½”λ“œ ꡬ성을 μœ„ν•΄ 가급적 μ „μ—­ λ³€μˆ˜μ˜ μ‚¬μš©μ€ μ΅œμ†Œν™”ν•˜λŠ” 것이 μ’‹λ‹€. 🎈 지역 λ³€μˆ˜(Local Variable) ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜. ν•¨μˆ˜ μ™ΈλΆ€μ—μ„œλŠ” μ ‘κ·Όν•  수 μ—†λ‹€. ν•¨μˆ˜μ— μ˜ν•΄ μƒμ„±λœ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ˜ λ³€μˆ˜. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λ©΄ λ§Œλ“€μ–΄μ§€κ³  ν•¨μˆ˜κ°€ μ’…λ£Œλ˜λ©΄ μ†Œλ©Έν•˜λŠ” λ³€μˆ˜. 2021. 10. 29.
[JavaScript] call, apply, bind 🍩 call λ©”μ„œλ“œμ˜ 호좜 주체인 ν•¨μˆ˜λ₯Ό μ¦‰μ‹œ μ‹€ν–‰ν•˜λ„λ‘ ν•˜λŠ” λͺ…λ Ή Function.prototype.call(thisArg[, arg1[, arg2[, ...]]]) μ΄λ•Œ call λ©”μ„œλ“œμ˜ 첫 번째 인자λ₯Ό this둜 λ°”μΈλ”©ν•˜κ³ , μ΄ν›„μ˜ μΈμžλ“€μ„ ν˜ΈμΆœν•  ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λ‘œ ν•œλ‹€. ν•¨μˆ˜λ₯Ό κ·Έλƒ₯ μ‹€ν–‰ν•˜λ©΄ thisλŠ” 전역객체λ₯Ό μ°Έμ‘°ν•˜μ§€λ§Œ call λ©”μ„œλ“œλ₯Ό μ΄μš©ν•˜λ©΄ μž„μ˜μ˜ 객체λ₯Ό this둜 지정할 수 μžˆλ‹€. // call λ©”μ„œλ“œ-1 var func = function (a, b, c) { console.log(this, a, b, c); }; func(1, 2, 3); // Window{ ... } 1 2 3 func.call({ x: 1 }, 4, 5, 6); // { x: 1 } 4 5 6 // call λ©”μ„œ.. 2021. 10. 23.
λ°˜μ‘ν˜•