πŸ“š μŠ€ν„°λ”” λͺ…

λͺ¨λ˜ν•  수 μžˆλŠ”κ±° λ§žλ‹ˆ

πŸ“† μŠ€ν„°λ”” μ§„ν–‰ λ‚ μ§œ

2023 / 12 /29일 (금) 05:00 PM μ§„ν–‰

μŠ€ν„°λ”” 그룹원뢄듀 2μ£Όκ°„ 각 νŒ€μ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ ν•˜λŠλΌ 
μŠ€ν„°λ”” 그룹원뢄듀과 λ…Όμ˜ ν›„ μŠ€ν„°λ”” μ§„ν–‰ κΈ°κ°„λ™μ•ˆ μŠ€ν„°λ”” 진행은 μž μ‹œ μ€‘λ‹¨ν•˜κ³  
ν”„λ‘œμ νŠΈ 일정이 λλ‚˜λ©΄ λ‹€μ‹œ μ§„ν–‰ν•˜κΈ°λ‘œ ν–ˆλ‹€.
λ‹€λ“€ ν”„λ‘œμ νŠΈ μ°Έμ—¬ν•˜μ‹œλŠλΌ κ³ μƒν•˜μ…¨μŠ΅λ‹ˆλ‹€! 

πŸ“– 6μ£Όμ°¨ ν•™μŠ΅ λ²”μœ„

09μž₯ νƒ€μž…λ³€ν™˜κ³Ό 단좕 평가 ( 108p ~ 123p)


πŸ‘¨πŸ»β€πŸ’» ν•™μŠ΅ λ‚΄μš©λ“€

🎯 parseInt ? parseFloat ?

λͺ…μ‹œμ  νƒ€μž… λ³€ν™˜ μ±•ν„°μ—μ„œ

숫자 νƒ€μž…μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 방법 쀑 parsInt , parseFloat ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜λŠ” 방법을 μ•Œκ²Œλ˜μ—ˆλ‹€.

<script>
parseInt('0'); // -> 0
parseFloat('10.53'); // -> 10.53
</script>

parseFloat ν•¨μˆ˜λŠ” μ†Œμˆ˜μ κΉŒμ§€ λ°˜ν™˜ν•΄μ£ΌλŠ” ν•¨μˆ˜μΈκ±Έ μ•Œμ•˜λ‹€.

ν•˜μ§€λ§Œ ParseInt ν•¨μˆ˜λŠ” μ™œ μ†Œμˆ˜μ μ„ λ¬΄μ‹œν•˜κ³  λ°˜ν™˜ν•΄μ€„κΉŒ?
그리고 Math.floorλΌλŠ” ν•¨μˆ˜κ°€ μžˆλŠ”λ° ParseInt 와 차이점은 λ¬΄μ—‡μΌκΉŒ?

ParseInt : μ •μˆ˜κ°’μœΌλ‘œ λ°˜ν™˜ν•˜κΈ° μœ„ν•΄ μ†Œμˆ˜μ  μ΄ν•˜ 값을 λ¬΄μ‹œν•˜κ³  λ°˜ν™˜ν•΄μ£ΌλŠ” ν•¨μˆ˜λΌκ³ ν•œλ‹€.

Math.floor : μ†Œμˆ˜κ°’μ„ λ‚΄λ¦Ό ν•˜μ—¬ λ°˜ν™˜ν•΄μ£ΌλŠ” ν•¨μˆ˜λΌκ³ ν•œλ‹€.

개발자 λ„κ΅¬μ—μ„œ 차이점을 μ‚΄νŽ΄λ΄€λ‹€.

μœ„ μ‚¬μ§„μ²˜λŸΌ κ°œλ°œμžλ„κ΅¬μ—μ„œ 좜λ ₯을 해봀을 λ•Œ
parseIntν•¨μˆ˜λŠ” μ•žμ„œ μ‚΄νŽ΄λ³Έ λ‚΄μš©μ²˜λŸΌ μ†Œμˆ˜μ λ’€μ—λŠ” λ¬΄μ‹œν•˜κ³  λ°˜ν™˜μ„ ν•΄μ€€λ‹€.
math.floor ν•¨μˆ˜λŠ” μ†Œμˆ˜μ μ„ λ‚΄λ¦Όν–ˆκΈ° λ•Œλ¬Έμ— -4κ°€ 좜λ ₯λ˜λŠ” λͺ¨μŠ΅μ„ λ³Ό 수 μžˆλ‹€.
λΉ„μŠ·ν•œ ν•¨μˆ˜κ°€ μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— μ˜λ„μ— 맞게 μ‚¬μš©ν•˜λ©΄ 쒋을것 κ°™λ‹€.

μ†Œμˆ˜κ°’μ„ 올림 ν•˜μ—¬ λ°˜ν™˜ν•΄μ£ΌλŠ” Math.ceilλΌλŠ” ν•¨μˆ˜λ„ μ‘΄μž¬ν•œλ‹€.
반올림 ν•˜λŠ” Math.round ν•¨μˆ˜λ„ μ‘΄μž¬ν•˜λ‹ˆ μ•Œμ•„λ‘λ©΄ 쒋을것 κ°™λ‹€.


🎯 단좕 평가 ν‘œν˜„μ‹ ?

논리합(||) λ˜λŠ” 논리곱(&&)μ—°μ‚°μž ν‘œν˜„μ‹μ˜ 평가 κ²°κ³ΌλŠ” λΆˆλ¦¬μ–Έ 값이 아닐 μˆ˜λ„ μžˆλ‹€κ³ ν•œλ‹€.
논리합 λ˜λŠ” 논리곱 μ—°μ‚°μž ν‘œν˜„μ‹μ€ μ–Έμ œλ‚˜ 2개의 ν”Όμ—°μ‚°μž 쀑 μ–΄λŠ ν•œμͺ½μœΌλ‘œ ν‰κ°€λœλ‹€κ³ ν•œλ‹€.

논리곱(&&)μ—°μ‚°μž : 두 개의 ν”Όμ—°μ‚°μžκ°€ λͺ¨λ‘ true둜 평가될 λ•Œ trueλ₯Ό λ°˜ν™˜ν•œλ‹€.
ν•˜λ‚˜λΌλ„ false인 경우 false값을 λ°˜ν™˜ν•œλ‹€.
논리곱 μ—°μ‚°μžλŠ” μ’Œν•­μ—μ„œ μš°ν•­μœΌλ‘œ 평가가 μ§„ν–‰λœλ‹€.
논리 μ—°μ‚°μ˜ κ²°κ³Όλ₯Ό κ²°μ •ν•˜λŠ” 두 번째 ν”Όμ—°μ‚°μžλ₯Ό λ°˜ν™˜ν•œλ‹€.
논리합(||)μ—°μ‚°μž : 두 개의 ν”Όμ—°μ‚°μž 쀑 ν•˜λ‚˜λ§Œ true둜 ν‰κ°€λ˜μ–΄λ„ trueλ₯Ό λ°˜ν™˜ν•œλ‹€.
ν•˜λ‚˜λΌλ„ true인 경우 true값을 λ°˜ν™˜ν•œλ‹€.
논리합 μ—°μ‚°μžλ„ 논리곱 μ—°μ‚°μžμ™€ λ™μΌν•˜κ²Œ μ’Œν•­μ—μ„œ μš°ν•­μœΌλ‘œ 평가가 μ§„ν–‰λœλ‹€.
논리 μ—°μ‚°μ˜ κ²°κ³Όλ₯Ό κ²°μ •ν•œ 첫 번째 ν”Όμ—°μ‚°μžλ₯Ό λ°˜ν™˜ν•œλ‹€.

πŸ“Œ 단좕평가 κ·œμΉ™

단좕 평가 ν‘œν˜„μ‹ν‰κ°€ κ²°κ³Ό
true II anythingtrue
false II anythinganything
true && anythinganything
false && anythingfalse

단좕 평가λ₯Ό μ‚¬μš©ν•˜λ©΄ if문을 λŒ€μ²΄ν•  수 μžˆλ‹€κ³ ν•œλ‹€.
μ–΄λ–€ 쑰건이 Truthy κ°’(참으둜 ν‰κ°€λ˜λŠ” κ°’)일 λ•Œ 무언가λ₯Ό ν•΄μ•Ό ν•œλ‹€λ©΄ 논리곱(&&) μ—°μ‚°μžλ₯Ό , Falsy κ°’(κ±°μ§“μœΌλ‘œ ν‰κ°€λ˜λŠ” κ°’)일 λ•Œ 무언가λ₯Ό ν•΄μ•Ό ν•œλ‹€λ©΄ 논리합(||) μ—°μ‚°μžλ₯Ό ν™œμš©ν•˜μ—¬ ν‘œν˜„μ‹μœΌλ‘œ if문을 λŒ€μ²΄ν•  수 μžˆλ‹€κ³ ν•œλ‹€.


🎯 μ˜΅μ…”λ„ 체이닝 μ—°μ‚°μž

ES11μ—μ„œ λ„μž…λœ μ˜΅μ…”λ„ 체이닝(optional chaining) μ—°μ‚°μž ?.λŠ” μ’Œν•­μ˜ ν”Όμ—°μ‚°μžκ°€ null λ˜λŠ” undefined인 경우 undefinedλ₯Ό λ°˜ν™˜ν•˜κ³ ,
κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ μš°ν•­μ˜ ν”„λ‘œνΌν‹° μ°Έμ‘°λ₯Ό 이어간닀.

<script>
var elem = null;

//elem이 null λ˜λŠ” undefined이면 undefunedλ₯Ό λ°˜ν™˜
// κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ μš°ν•­μ˜ ν”„λ‘œνΌν‹° μ°Έμ‘°λ₯Ό 이어감

var value = elem?.value;
console.log(value); // undefined
</script>

κ·Έλ ‡λ‹€λ©΄ μ˜΅μ…”λ„ μ²΄μ΄λ‹μ—°μ‚°μžλŠ” μ–Έμ œ ν™œμš©ν•˜λ©΄ μ’‹μ„κΉŒ?
사싀상 μœ„ μ˜ˆμ œμ½”λ“œλ§Œ λ΄μ„œλŠ” 아무 μ˜λ―Έκ°€ μ—†κ³  κ°€λŠ μ΄ 잘 μž‘νžˆμ§€ μ•Šμ„κ²ƒμ΄λ‹€.
μ˜΅μ…”λ„ 체이닝은 μ€‘μ²©λœ 객체(object) κ°€ μžˆμ„ λ•Œ ν™œμš©ν•˜λ©΄ μ’‹λ‹€.
κ°μ²΄μ•ˆμ˜ 값이 λ“€μ–΄μžˆμœΌλ©΄ λ°˜ν™˜μ„ ν•΄μ£Όκ³  μ—†λ‹€λ©΄ undefined둜 λ°˜ν™˜μ„ ν•΄μ€€λ‹€.
μ£Όμ˜ν• μ μ€ μ˜΅μ…”λ„ 체이닝은 μ—λŸ¬λ₯Ό λ°©μ§€ν•˜λŠ”κ²Œ μ•„λ‹Œ μ—λŸ¬λ₯Ό 잠깐 μˆ¨κΈ°λŠ” 역할을 ν•˜λŠ”κ²ƒμ΄κΈ° λ•Œλ¬Έμ— 자주 ν™œμš©ν•˜λŠ”κ±΄ μ§€μ–‘ν•œλ‹€κ³ ν•œλ‹€.


🎯null 병합 μ—°μ‚°μž

null 병합 μ—°μ‚°μž ?? λŠ” μ’Œν•­μ˜ ν”Όμ—°μ‚°μžκ°€ null λ˜λŠ” undefined인 경우 μš°ν•­μ˜ ν”Όμ—°μ‚°μžλ₯Ό λ°˜ν™˜ν•˜κ³ , κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ μ’Œν•­μ˜ ν”Όμ—°μ‚°μžλ₯Ό λ°˜ν™˜ν•œλ‹€.
null 병합 μ—°μ‚°μž ??λŠ” λ³€μˆ˜μ— 기본값을 μ„€μ •ν•  λ•Œ μœ μš©ν•˜λ‹€.

<script>
let foo = null ?? 'default string'
console.log(foo); // "default string"
</script>

null 병합 μ—°μ‚°μž(nullish coalescing)λŠ” μ–Έμ œ ν™œμš©ν•˜λ©΄ μ’‹μ„κΉŒ?

예λ₯Ό λ“€μ–΄ μ™ΈλΆ€ 데이터λ₯Ό λ°›μ•„μ˜¬ λ•Œ 늦게 λ°›μ•„μ˜€κ²Œ λœλ‹€λ©΄ null 병합 μ—°μ‚°μžλ₯Ό ν™œμš©ν•˜λŠ” λ°©λ²•μ΄μžˆλ‹€.

<script>
const setData = data ?? "Loding..."
</script>

πŸ’‘ ν•™μŠ΅μ„ 톡해 λŠλ‚€μ  3κ°€μ§€
1️⃣ μ΅œμ‹ λ¬Έλ²•μ„ μ§€ν–₯ν•˜λŠ”μ΄μœ κ°€ μžˆκ΅¬λ‚˜.
2️⃣ λ¦¬μ•‘νŠΈ, νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ μ˜΅μ…”λ„μ²΄μ΄λ‹κ³Ό null병합 μ—°μ‚°μžμ— λŒ€ν•΄
μ •ν™•νžˆ μ΄ν•΄ν•˜μ§€ λͺ»ν•˜κ³ μžˆμ—ˆλŠ”λ° μ—­μ‹œ JSμ—μ„œ μ–΄λ €μ›Œν•˜κ³  μžˆμ—ˆλ‹€.
3️⃣ μŠ€ν„°λ”” μ°Έμ—¬ μ•ˆν–ˆμœΌλ©΄ ν›„νšŒν–ˆκ² λ‹€..

profile
β˜„οΈ

0개의 λŒ“κΈ€