-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
72 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# βοΈ λ¦¬μ‘νΈ κ°λ°μ μν΄ κΌ μμμΌ ν μλ°μ€ν¬λ¦½νΈ | ||
|
||
### βοΈ JS μ λλ±μ± λΉκ΅ | ||
|
||
- useEffect λ₯Ό μ¬μ©ν λ, 첫λ²μ§Έ μΈμλ‘ λ£μ setup ν¨μ λ΄μ μ‘΄μ¬νλ Reactive ν κ°μ λ°λμ deps μ λ£μ΄μΌ νλ€. | ||
- Reactive νμ§ μμ κ°μ μ»΄ν¬λνΈ λ΄λΆμμ 리λ λλ§μ΄ λμ΄λ **μ λ λ³νμ§ μλ κ°** μ΄λ€. | ||
- λ°λλ‘ Reactive ν κ°μ 맀 λ λλ§λ§λ€ κ°μ΄ λ¬λΌμ§ μ μμμ μλ―Ένλ€. | ||
- μ΄λ κ° λ°°μ΄μ μ‘΄μ¬νλ κ°λ€μ μννλ©΄μ λλ± λΉκ΅λ₯Ό μννκ³ λ§μ½ κ°μ΄ λ³κ²½λμλ€λ©΄ setup ν¨μκ° μ€νλλ€. | ||
- React μ props λ 리λ λλ§μ μ λ°μν€λ μμμ΄λ©°, μ΄μ κ³Ό νμ¬μ props λ₯Ό λΉκ΅νλ κ³Όμ λ λλ± λΉκ΅κ° λ΄λΉνλ€. | ||
|
||
> React μμλ λλ± λΉκ΅λ₯Ό μ΄λ€ μμΌλ‘ μ§ννλκ°? | ||
- κΈ°λ³Έμ μΌλ‘ React μμλ `Object.is` λ©μλλ‘ λ κ°μ λλ± λΉκ΅λ₯Ό μννλ©°, μ°Έμ‘°ν νμ μ κ²½μ° κ°μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ°Έμ‘°νλ€λ©΄ κ°λ€κ³ νλ¨νλ€. | ||
- μ΄λ κ² λ κ°μ²΄μ λ΄λΆ λ°μ΄ν°λ₯Ό μμΈν μ‘°ννμ§ μκ³ μ°Έμ‘°λ λ©λͺ¨λ¦¬ μ£Όμλ§μ νλ³νλ λλ± λΉκ΅ λ°©μμ΄ **"μμ λΉκ΅"** μ΄λ€. | ||
|
||
### βοΈ JS μ λ°μ΄ν° νμ | ||
|
||
- JS μ λ°μ΄ν° νμ μ ν¬κ² μμ νμ κ³Ό κ°μ²΄ νμ μΌλ‘ λλλ€. | ||
|
||
- μμ νμ μ κ°μ²΄ νμ μ΄ μλ λλ¨Έμ§ νμ μ μλ―Ένλ€. | ||
- boolean, string, number, null, undefined, BigInt, Symbol λ‘ μ΄λ£¨μ΄μ Έ μλ€. | ||
|
||
> typeof null === 'object' | ||
- JS κ°λ°μ νλ€λ³΄λ©΄ νν λ§μ£Όν μ μλ κΆκΈμ¦μ΄ λ°λ‘ ν΄λΉ λΉκ΅λ¬Έμ΄λ€. | ||
- μ΄λ JS κ° μ΄κΈ° μ€κ³λμμ λ μκΈ΄ κ²°ν¨μΌλ‘, μ΄μ μ½λμμ νΈνμ± λ¬Έμ λ‘ μμ§κΉμ§ κ³ μ³μ§μ§ λͺ»νλ€. | ||
- `undefined` λ μμ§ κ°μ΄ ν λΉλμ§ μμ μνμ΄λ©°, `null` μ λͺ μμ μΌλ‘ κ°μ΄ λΉμμμ μλ―Ένλ€. (κ°μ κ°μ΄λ€.) | ||
|
||
> Number vs BigInt | ||
- Number λ μΌλ°μ μΌλ‘ `-2^53 - 1 ~ 2^53 - 1` μ¬μ΄λ₯Ό ννν μ μλ€. | ||
- κ·Έ μ΄μ μ«μκ° μ»€μ§ κ²½μ° κ°μ΄ λ¬λΌλ true λ₯Ό λ°ννλ€. | ||
- νμ§λ§ BigInt μ κ²½μ° number κ° ννν μ μμλ νκ³λ₯Ό λμ΄μ€ μ μλ€. | ||
|
||
### βοΈ κ°μ μ μ₯νλ λ°©μμ μ°¨μ΄ | ||
|
||
- μμ νμ μ κ²½μ° κ°μ 볡μ¬νλλΌλ μ΄λ₯Ό μλ‘μ΄ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν λΉ λ°μ μ±μ°κΈ° λλ¬Έμ μ£Όμλ λ€λ₯΄λ€. | ||
- νμ§λ§ μ°Έμ‘° νμ (Object) μ κ²½μ° λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ°Έμ‘°νλ νμμΌλ‘ κ°μ λκΈ°κΈ° λλ¬Έμ μ°¨μ΄κ° μλ€. | ||
|
||
### βοΈ Object.is | ||
|
||
- `Object.is` λ ES6 μμ μλ‘κ² μ μλ λλ± λΉκ΅ μ°μ°μ΄λ©°, κΈ°μ‘΄μ λΉκ΅ μ°μ°μμμ μ°¨μ΄μ μ μλμ κ°λ€. | ||
|
||
- `==` κ³Ό `Object.is` μ μ°¨μ΄ | ||
- `==` μ κ²½μ° μμͺ½μ΄ λλ±ν νμ μ΄ μλλΌλ©΄ μ΄λ₯Ό μΊμ€ν νλ€. | ||
- νμ§λ§ `Object.is` μ κ²½μ° νμ μ΄ λ€λ₯΄λ©΄ false λ₯Ό λ°ννλ€. | ||
|
||
- `===` κ³Ό `Object.is` μ μ°¨μ΄ | ||
- `Object.is` λ `+0` κ³Ό `-0` μ λ€λ₯΄λ€κ³ νλ¨νμ§λ§ `===` λ κ·Έλ μ§ μλ€. | ||
- `Object.is` λ `Number.NaN` (νΉμ κ·Έ μΈ NaN μ΄ λμ¬ λ§ν μΌμ΄μ€) κ³Ό `NaN` μ κ°λ€κ³ νλ¨νμ§λ§ `===` λ κ·Έλ μ§ μλ€. (NaN === NaN μ 무쑰건 false λ€.) | ||
|
||
- μ°Έμ‘°ν νμ μ κ²½μ° λ κ°μ²΄κ° κ°μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ°Έμ‘°νλ€λ©΄ `true` λ₯Ό λ°ννλ€. | ||
|
||
> Object.is μ‘°κΈ λ μμΈν μ΄ν΄λ³΄κΈ° | ||
```js | ||
function is(a, b) { | ||
return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y); | ||
} | ||
``` | ||
- Object.is λ ES6 μ€νμ΄κΈ° λλ¬Έμ ES5 μ΄μ λ²μ μ μ§μνκΈ° μν΄ Polyfill λ μ νΈ ν¨μλ₯Ό React λ΄λΆμμ μ¬μ©νλ€. | ||
- μ΄λ₯Ό μ‘°κΈ λ μμΈν λ―μ΄λ³΄λ©΄ μλμ κ°μ λ‘μ§μ κ±°μΉλ€. | ||
|
||
1. `x === y` κ° μ±λ¦½νλ€λ©΄, `x !== 0 || 1 / x === 1 / y` μλ μ±λ¦½ν΄μΌ νλ€. | ||
1-1. `x !== 0` μΈ κ²½μ° | ||
- x κ° 0μ΄ μλλΌλ©΄ y λ 0μ΄ μλλ©°, x === y μ΄λ―λ‘ x μ y κ° NaN μΈ κ²½μ° μΈμλ νμ μ°Έμ΄λ€. | ||
1-2. `x === 0` μΈ κ²½μ° `1 / x === 1 / y` μ΄μ΄μΌ νλ€. | ||
- λ§μ½ x κ° `+0` μ΄λΌλ©΄ 1 / x λ `Infinity` μ΄κ³ `-0` λΌλ©΄ `-Infinity` μ΄λ€. λ°λΌμ x μ y μ λΆνΈκ° λ€λ₯΄λ©΄ false λ₯Ό λ°ννλ€. | ||
- μ격ν λΉκ΅μ κ²½μ° λ μΌμ΄μ€λ₯Ό κ°λ€κ³ 보기 λλ¬Έμ μ΄λ₯Ό ꡬλ³νκΈ° μν λΉκ΅μμ΄λ€. | ||
2. `x !== x && y !== y` μΈ κ²½μ° | ||
- μ격ν λΉκ΅μ κ²½μ° `x !== x` λ₯Ό μ±λ¦½νλ 쑰건μ x κ° NaN μΈ κ²½μ° μΈμ μλ€. | ||
- λ°λΌμ `x` μ `y` κ° λ λ€ NaN μΌ κ²½μ° true λ₯Ό λ°ννκ³ , κ·Έ μΈμλ false λ₯Ό λ°ννλ€. |