๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Frontend/React

[ ๋ฆฌ์•กํŠธ(React) ] && ๋Œ€์‹  ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ

by YWTechIT 2022. 11. 7.
728x90

๐Ÿ“ && ๋Œ€์‹  ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ

๋ฆฌ์•กํŠธ๋กœ ๋ Œ๋”๋ง view๋ฅผ ๊ทธ๋ฆด ๋•Œ ์ข…์ข… && ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง์„ ํ•  ๋•Œ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. 

 

์—ฌ๋‹ด์œผ๋กœ &&์—ฐ์‚ฐ์ž๋Š” Logical AND, ๋‹จ์ถ•ํ‰๊ฐ€(short circuit evaluation)๋ผ๊ณ  ํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ํ‰๊ฐ€ํ•˜์—ฌ ์ฒ˜์Œ ๋งŒ๋‚˜๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ falsy์ธ ๊ฒฝ์šฐ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋ชจ๋“  ์—ฐ์‚ฐ์ž๊ฐ€ truthy ํ•œ ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰ ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. falsy๋Š” Boolean context๋กœ ๋ณ€๊ฒฝ๋  ๋•Œ false๋กœ ํ‰๊ฐ€๋˜๋Š” ๊ฐ’์œผ๋กœ JS์—์„œ๋Š” false, 0, -0, "", null, undefined, NaN๊ฐ€ ์žˆ๋‹ค. truthy๋Š” falsy์™€ ๋ฐ˜๋Œ€๋กœ Boolean context๋กœ ๋ณ€๊ฒฝ๋  ๋•Œ true๋กœ ํ‰๊ฐ€๋˜๋Š” ๊ฐ’์œผ๋กœ JS์—์„œ falsy๊ฐ’์„ ์ œ์™ธํ•˜๋ฉด ๋ชจ๋‘ ์ฐธ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด true, {}, [], 123, "0", "false", 3.14, -3.14, Infinity ๋“ฑ๋“ฑ์ด ์žˆ๋‹ค.

728x90

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„์™€ ํ•˜๋‹จ์˜ App ์ปดํฌ๋„ŒํŠธ๋Š” ์•ˆ๋…•ํ•˜์„ธ์š”!๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

 

 

๊ทธ๋Ÿฐ๋ฐ, condition์ด boolean์œผ๋กœ ์ถ”์ •๋˜์ง€ ์•Š๊ฑฐ๋‚˜ undefined์ผ ๊ฒฝ์šฐ react๊ฐ€ ๋‹ค์Œ ์—๋Ÿฌ๋ฅผ ๋ฟœ์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

์ฝ”๋“œ๋Š” ์•ฝ๊ฐ„ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฒฐ๋ก ์ ์œผ๋กœ ์ž ์žฌ์ ์ธ ๋ฒ„๊ทธ๋ฅผ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด && ๋Œ€์‹  ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ์ด๊ฒƒ์ด๋‹ค.

// AS-IS
isCondition && <Hello />

// TO-BE
isCondition ? <Hello /> : null

 

Reference

  1. Logical AND - MDN
  2. Falsy - MDN
  3. Truthy - MDN
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€