Languages/JavaScript πŸ’›

    [JS] μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜λ₯Ό λ³€μˆ˜μ— ν• λ‹Ήν•  수 μžˆλŠ” 이유

    이 본문은 μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜μ˜ κ°œλ…μ„ λ‹€λ£Ήλ‹ˆλ‹€πŸ’ͺ🏼 본문을 μ‹œμž‘ν•˜κΈ°μ— μ•žμ„œ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ¦¬ν„°λŸ΄κ³Ό ν‘œν˜„μ‹μ— λŒ€ν•œ κ°œλ…μ„ κ°„λ‹¨νžˆ μ •λ¦¬ν•˜κ³ μž ν•œλ‹€. λ¦¬ν„°λŸ΄(Literal) μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” 문자 λ˜λŠ” μ•½μ†λœ 기호λ₯Ό μ‚¬μš©ν•˜μ—¬ 값을 μƒμ„±ν•˜λŠ” ν‘œκΈ°λ²•μ„ λ§ν•œλ‹€. // number literal 3 123; 이 예제의 123은 λ‹¨μˆœν•œ μˆ«μžκ°’μ΄ μ•„λ‹Œ 숫자 λ¦¬ν„°λŸ΄μ΄λ‹€. μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” 아라비아 숫자 ν‘œν˜„μ„ μ‚¬μš©ν•΄ 숫자 123을 μ½”λ“œμ— κΈ°μˆ ν•˜λ©΄ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 이λ₯Ό μˆ«μžκ°’ 123으둜 ν‰κ°€ν•œλ‹€. 즉, μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” ν‘œν˜„μ„ μ‚¬μš©ν•˜μ—¬ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 값을 μƒμ„±ν•˜λŠ” 것이닀. μ•„λž˜μ—μ„œ λ‹€μ‹œ μ–ΈκΈ‰ν•˜κ² μ§€λ§Œ, μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” ν•¨μˆ˜λ₯Ό ν•˜λ‚˜μ˜ 객체둜 μ •μ˜ν•œλ‹€. 즉, 객체 λ¦¬ν„°λŸ΄λ‘œ 객체λ₯Ό μƒμ„±ν•˜λŠ” κ²ƒμ²˜λŸΌ ν•¨μˆ˜ λ¦¬ν„°λŸ΄..

    [JS] μžλ°”μŠ€ν¬λ¦½νŠΈ μ›μ‹œ κ°’κ³Ό 객체(Immutability, Mutability)

    ECMAScript6(ES6)λŠ” 7개의 데이터 νƒ€μž…(number, string, boolean, undefined, null, symbol, object)을 μ œκ³΅ν•œλ‹€. μ΄λŠ” 크게 μ›μ‹œ νƒ€μž…(primitive type)κ³Ό 객체 νƒ€μž…(object/reference type)으둜 ꡬ뢄할 수 μžˆλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈ μ›μ‹œ νƒ€μž…(Primitive Type) κ°’μ˜ 변경이 λΆˆκ°€λŠ₯ν•œ κ°’(Immutable Value) λ³€μˆ˜μ— ν• λ‹Ήλœ 값은 더 이상 변경이 될 수 μ—†λ‹€!! μ—¬κΈ°μ„œ μ€‘μš”ν•œ ν¬μΈνŠΈλŠ” μ›μ‹œ κ°’ 자체λ₯Ό λ³€κ²½ν•  수 μ—†λ‹€λŠ” 것이지 λ³€μˆ˜ 값을 λ³€κ²½ν•  수 μ—†λ‹€λŠ” 것이 μ•„λ‹ˆλ‹€. number, string, boolean, undefined, null, symbol νƒ€μž…μ΄ 이에 ν•΄λ‹Ήλœλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 객체 νƒ€μž…(Object Ty..

    [JS] λ³€μˆ˜ ν˜Έμ΄μŠ€νŒ…(Hoisting)에 λŒ€ν•˜μ—¬

    1. var 에 λŒ€ν•œ κ°œλ…μ •λ¦¬ JavaScript의 var λ³€μˆ˜λŠ” λ‹€λ₯Έ μ–Έμ–΄λ“€κ³Ό 쑰금 λ‹€λ₯΄κ²Œ λ™μž‘ν•©λ‹ˆλ‹€. μ΄λŠ” λ•Œλ•Œλ‘œ 개발자둜 ν•˜μ—¬κΈˆ μ˜λ„ν•˜μ§€ μ•Šμ€ κ²°κ³Όλ₯Ό λ°œμƒν•˜κΈ°λ„ ν•©λ‹ˆλ‹€. if(true){ var name = 'sean'; } console.log(name); for(var i=0; i