Deep Dive : Javascript λλ±λΉκ΅ / ν¨μ
π€ 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