JavaScript

Deep Dive : Javascript 동등비ꡐ / ν•¨μˆ˜

mykuromi 2024. 5. 4. 10:50

πŸ–€ React μ»΄ν¬λ„ŒνŠΈμ—μ„œ λ Œλ”λ§μ΄ μΌμ–΄λ‚˜λŠ” 이유
- propκ°„ 동등비ꡐ
- 얕은 비ꡐ 기반 
 
 
1-1. μžλ°”μŠ€ν¬λ¦½νŠΈ 동등 비ꡐ
 
βœ“ μ›μ‹œ νƒ€μž…(primitive type)
- boolean / null / undefined / number / string / symbol / bigint
- λΆˆλ³€ ν˜•νƒœμ˜ κ°’
 
βœ“ κ°μ²΄ νƒ€μž…(object/reference type) : object
- λ³€κ²½ κ°€λŠ₯ν•œ κ°’ -> ν”„λ‘œνΌν‹° μΆ”κ°€
- μ°Έμ‘° κ°’ -> λ³€μˆ˜ μž¬ν• λ‹Ή μ‹œ μ£Όμ†Œ μ €μž₯
 
βœ“ Object.is
- cf) == : type casting 이후 비ꡐ
- 객체 κ°„ 비ꡐ μ‹œ == 와 λ™μΌν•˜κ²Œ λ™μž‘(μ£Όμ†Œκ°’ 비ꡐ)
 
βœ“ shallowEqual
- Reactμ—μ„œ μ‚¬μš©
- 객체 κ°„ 얕은 비ꡐ
- 1 depth κΉŒμ§€ 비ꡐ
- 객체 μ•ˆμ˜ 객체(2 depth 이상)의 경우 μ œλŒ€λ‘œ λ™μž‘ν•˜κΈ° 어렀움
 
+ truthy, falsy
- truthy :  https://developer.mozilla.org/ko/docs/Glossary/Truthy
- falsy :  https://developer.mozilla.org/ko/docs/Glossary/Falsy
- quiz : https://quizzesforyou.com/quiz/jstruthyfalsy
 
1-2. ν•¨μˆ˜
- μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ±°λ‚˜ 값을 κ³„μ‚°ν•˜λŠ” λ“±μ˜ 과정을 ν‘œν˜„, 이λ₯Ό ν•˜λ‚˜μ˜ λΈ”λ‘μœΌλ‘œ 감싸 μ‹€ν–‰ λ‹¨μœ„λ‘œ λ§Œλ“€μ–΄ 놓은 것
 
βœ“ function ( ) { } 
- ν•¨μˆ˜ μ„ μ–Έλ¬Έ(statement)
- ν˜Έμ΄μŠ€νŒ… -> μ‹€ν–‰ μ „ λ©”λͺ¨λ¦¬μ— 등둝, 선언을 ν•˜λ‹¨μ—μ„œ ν–ˆμ–΄λ„ μƒλ‹¨μ—μ„œ μ‚¬μš© κ°€λŠ₯
 
βœ“ const ___ ( ) => { } / const ___ = function ( ) { }
- ν•¨μˆ˜ ν‘œν˜„μ‹ 
- λ³€μˆ˜μ— ν• λ‹Ήν•΄μ„œ ν˜Έμ΄μŠ€νŒ… λ˜λŠ” 경우 λ³€μˆ˜ 값이 undefined둜 ν˜Έμ΄μŠ€νŒ…
 
βœ“ function μƒμ„±μž
- new Functon(...params, return)
- ꢌμž₯λ˜μ§€ μ•ŠλŠ” 방법
 
βœ“ ν™”μ‚΄ν‘œ ν•¨μˆ˜
- this : μƒμœ„ μŠ€μ½”ν”„μ˜ this λ₯Ό 가리킴 -> Reactμ—μ„œλŠ” μ»΄ν¬λ„ŒνŠΈ
- cf) function μ„ μ–Έμ—μ„œ this : λŸ°νƒ€μž„ μ‹œμ μ˜ this, μ „μ—­ 객체
 
βœ“ μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜
- ( function () { } )
- ( ( ) => { } )
 
βœ“ κ³ μ°¨ ν•¨μˆ˜ 
- ν•¨μˆ˜λ₯Ό 인수둜 λ°›κ±°λ‚˜ μƒˆλ‘œμš΄ ν•¨μˆ˜ λ°˜ν™˜
- ex) map