λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
JS

[JS] : 쑰건뢀 μ‹€ν–‰ / μ‚Όν•­ μ—°μ‚°μžμ™€ 단좕평가

by κΆŒμŠΎν–„ 2023. 7. 26.

쑰건뢀 μ‹€ν–‰

쑰건이라 함은 μžμ—°μŠ€λ ˆ λ– μ˜€λ₯΄λŠ” if문을 μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„, 쑰건뢀 싀행을 ν•  수 μžˆλŠ” μ½”λ“œκ°€ μžˆλ‹€κ³  ν•œλ‹€.

μ˜ˆμ‹œμ½”λ“œ

let x = 10;

if (x > 0) {
    console.log('xλŠ” μ–‘μˆ˜μž…λ‹ˆλ‹€.');
}

and 쑰건 ( && )

x > 0 && console.log('xλŠ” μ–‘μˆ˜μž…λ‹ˆλ‹€.');

좜λ ₯ κ°’

μ˜ˆμ‹œμ½”λ“œμ™€ 쑰건뢀 μ‹€ν–‰ν•œ 두 μ½”λ“œ λ™μΌν•˜κ²Œ

xλŠ” μ–‘μˆ˜μž…λ‹ˆλ‹€.

λ₯Ό 좜λ ₯ν•œλ‹€.

쑰건뢀 μ‹€ν–‰μ½”λ“œ 해석

and 쑰건을 μ‚¬μš©ν•¨μœΌλ‘œμ¨

&& μ•žμ˜ x > 0이 λ§Œμ‘±ν•˜λ©΄ ~
&& λ’€μ˜ console.log()도 좜λ ₯이 λ˜λŠ” 것이닀.

μ‚Όν•­ μ—°μ‚°μžμ™€ 단좕평가

λ‚΄κ°€ μ•„λŠ” μ‚Όν•­μ—°μ‚°μžλŠ”

true ? console.log(true) : console.log(false)

? μ•žμ˜ 쑰건이 "μ°Έ"μ΄λΌλŠ” 값을 λ‚˜νƒ€λ‚΄λ©΄ λ‘λ²ˆμ§Έ 항을 μ‹€ν–‰μ‹œν‚€κ³ ,

쑰건이 "κ±°μ§“"을 λ‚˜νƒ€λ‚΄λ©΄ μ„Έλ²ˆμ§Έ 항을 μ‹€ν–‰μ‹œν‚€λŠ” ν˜•νƒœλ₯Ό κ°€μ§€λŠ” κ²ƒμœΌλ‘œ μ•Œκ³ μžˆλ‹€.

ν—Œλ° μ§€κΈˆ λ°°μš°λŠ” μ‚Όν•­μ—°μ‚°μžμ™€ λ‹¨μΆ•ν‰κ°€μ—λŠ” μœ„μ˜ ν˜•νƒœλ₯Ό μ§€λ‹ˆκ³  μžˆμ§„ μ•Šμ§€λ§Œ, μ‚Όν•­μ—°μ‚°μžλΌλŠ” 타이틀을 κ°–κ³  있고, μ½”λ“œκ°€ μ‹ κΈ°ν•˜κΈ° λ•Œλ¬Έμ— μž‘μ„±ν•΄λ‘”λ‹€.

or 쑰건 ( | | )μ˜ˆμ‹œμ½”λ“œ

let y;
let z = y || 20;

console.log(z);

좜λ ₯ κ°’

20

μ½”λ“œ 해석

μœ„ μ½”λ“œμ˜ yλŠ” μ„ μ–Έλ§Œ λ˜μ—ˆμ„ 뿐 μ–΄λ– ν•œ 값도 ν• λ‹Ήλ˜μ§€ μ•Šμ•˜λ‹€.
λ”°λΌμ„œ ν˜„μž¬ yλŠ” undefined의 μƒνƒœ.

ν•˜μ§€λ§Œ z에 y λ˜λŠ” 20을 ν• λ‹Ήν•˜κ³  console.logλ₯Ό 확인해보면 20이 좜λ ₯λœλ‹€.

κ·Έλ ‡λ‹€λŠ”κ²ƒμ€ λ‹€μŒκ³Ό 같이 해석할 수 μžˆλŠ” 것 κ°™λ‹€.

let으둜 μ„ μ–Έν•œ z의 값에 y λ˜λŠ” 20을 할당할건데~

yκ°€ μ—†μœΌλ©΄ 20을 ν• λ‹Ήν•΄μ£Όμ„Έμš”.

κΆκΈˆν•œ 점

μ§€κΈˆ μœ„ μ½”λ“œ λŠλ‚Œμ΄ ꡬ쑰뢄해 ν• λ‹Ήμ˜ μ΄ˆκΈ°κ°’ μ„€μ •κ³Ό λΉ„μŠ·ν•œ λŠλ‚Œμ΄κΈ° λ•Œλ¬Έμ—, y에 값을 ν• λ‹Ήν•˜λ©΄ 20은 μ–΄λ–»κ²Œ λ κΉŒκ°€ κΆκΈˆν–ˆλ‹€.

μ˜ˆμ‹œμ½”λ“œ

let y = 10;
let z = y || 20;

console.log(z);

좜λ ₯ κ°’

10

λŠλ‚€μ 

κ°„λ‹¨ν•œ 쑰건을 μ‹€ν–‰μ‹œν‚¬λ•ŒλŠ” ifλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ , 쑰건뢀 μ‹€ν–‰μœΌλ‘œ λ‚΄κ°€ μ›ν•˜λŠ” μ½”λ“œλ₯Ό λ§Œλ“€ 수 μžˆμ„ 것 κ°™λ‹€.

λ˜ν•œ or쑰건은, ꡬ쑰뢄해할당 μ΄ˆκΈ°κ°’μ˜ λŠλ‚ŒμœΌλ‘œ λ°›μ•„λ“€μ΄λŠ”λ° 거뢀감이 λ“€μ§€ μ•Šμ•˜λ‹€.

μš”μ¦˜μ€ μ΄λŸ°μ‹μ˜ μ½”λ“œλ„ 많이 ꡬ사λ₯Ό ν•œλ‹€κ³  ν•œλ‹€.

λ‚˜λ„ 이것저것 더 μ•Œμ•„λ³΄λ©΄μ„œ μ΅μˆ™ν•΄μ§€λ©΄ 도움이 많이 될 것 κ°™λ‹€.

'JS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JS] : 얕은 볡사 / κΉŠμ€ 볡사  (0) 2023.07.27
[JS] : Call By Value / Call By Reference  (0) 2023.07.27
[JS] : Switch  (0) 2023.07.26
[JS] : Null / Undefined  (0) 2023.07.24
[JS] : Iterator ( for ... of )  (0) 2023.07.23