[React] falsy ๊ฐ์ ์ฌ์ฉํ ๋ฆฌ์กํธ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ฃผ์ํ ์
๋ฆฌ์กํธ์์
null
,undefined
,boolean
์ด๋ ๊ฒ 3๊ฐ์ง ํ์ ๋ง ๋ ๋๋ง์ ๊ฑด๋๋ฐ๋ ์ ๊ธฐ์ต
์๋ฐ์คํฌ๋ฆฝํธ์์ 0
(ํน์ -0
, 0n
)์ 6๊ฐ์ง falsy ๊ฐ ์ค ํ๋๋ค. &&
AND ๋
ผ๋ฆฌ ์ฐ์ฐ์๋ ์ฒซ๋ฒ์งธ falsy ๊ฐ์ ์ฐพ์์ ๋ฐํํ๊ณ , falsy ๊ฐ์ด ์์ผ๋ฉด(ํผ์ฐ์ฐ์๊ฐ ๋ชจ๋ true
์ด๋ฉด) ๋ง์ง๋ง ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๋ค(๋ฐ๋๋ก ||
OR ์ฐ์ฐ์๋ ์ฒซ ๋ฒ์งธ truthy ๊ฐ์ ์ฐพ์ ๋ฐํํ๊ณ , truthy ๊ฐ์ด ์์ผ๋ฉด &&
์ฐ์ฐ์์ฒ๋ผ ๋ง์ง๋ง ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๋ค).
0 && 'bit'; // 0
-0 && 'bit'; // -0
0n && 'bit'; // 0n
React์์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง ์ฝ๋๋ฅผ ์์ฑํ ๋ &&
์ฐ์ฐ์๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ค. ์๋ ์์์์ count
๋ณ์์ ๋ด๊ธด 0
์ falsy ๊ฐ์ด๋ฏ๋ก ํ๋ฉด์ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์๋๊ฑธ ๊ธฐ๋ํ์ง๋ง, ํ๋ฉด์ 0
์ ์ถ๋ ฅํ๋ค. falsy && ํํ์
์ falsy ๊ฐ์ ๋ฐํํ๊ณ , React์์ falsy ๊ฐ์ธ 0์ ๊ทธ๋๋ก ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ ๋๋ฌธ.
// ์ปดํฌ๋ํธ ๋ณธ๋ฌธ
const count = 0;
return <div>{count && <h1>Hello World</h1>}</div>;
์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด &&
์์(์ขํญ) ํํ์์ด falsy ๊ฐ์ด ์๋ boolean(true|false
) ํ์
์ ๋ฐํํ๋๋ก ํด์ผ ํ๋ค. ๋ฆฌ์กํธ์์ &&
์ขํญ ํํ์์ด false
์ด๋ฉด(falsy ๊ฐ์ด ์๋ boolean false
์ธ ์ ์ฃผ์) ํด๋น ์ค์ ์ค๊ดํธ๋ฅผ ๋ฌด์ํ๊ณ ๊ฑด๋๋ด๋ค.
// ์ปดํฌ๋ํธ return ๋ฌธ
// && ์ขํญ ํํ์์ด ๋ชจ๋ false๋ฅผ ๋ฐํํ๋ฏ๋ก ํ๋ฉด์ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์๋๋ค
{count > 0 && <h1>Hello World</h1>} // ๋ฐฉ๋ฒ 1
{!!count && <h1>Hello World</h1>} // ๋ฐฉ๋ฒ 2
{Boolean(count) && <h1>Hello World</h1>} // ๋ฐฉ๋ฒ 3
๋ํ, ๋ฆฌ์กํธ์์ null
, undefined
, boolean
(false
๋ฉด ๊ฑด๋๋ฐ๊ณ true
๋ฉด &&
๋ค์ ํํ์ ์ถ๋ ฅ) ํ์
์ ๋ํด์๋ง ๋ ๋๋ง์ ๊ฑด๋๋ฐ๋ ์ ๋ ๊ธฐ์ตํ์.
// ์ปดํฌ๋ํธ return ๋ฌธ
// ์๋ ์์ ๋ชจ๋ ํ๋ฉด์ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์๋๋ค
{null && <h1>Hello World</h1>}
{undefined && <h1>Hello World</h1>}
{false && <h1>Hello World</h1>}
๐ก ์ฐธ๊ณ ๋ก ๋ฆฌ์คํธ(๋ฐฐ์ด)๋ฅผ ๋ ๋๋ง ํ ๋, ๋ฆฌ์คํธ๊ฐ []
๋น ๋ฐฐ์ด์ด๋ฉด ํ๋ฉด์ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์๋๋ค.
์ฐธ๊ณ ์๋ฃ
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[HTML/CSS] ์คํฌ๋กค๋ฐ ํ์๋ก ์ธํ ๋ ์ด์์ ๋ณํ ๋ฐฉ์งํ๊ธฐ - Scrollbar Gutter
[HTML/CSS] ์คํฌ๋กค๋ฐ ํ์๋ก ์ธํ ๋ ์ด์์ ๋ณํ ๋ฐฉ์งํ๊ธฐ - Scrollbar Gutter
2024.05.11 -
[TS] ํ์ ์คํฌ๋ฆฝํธ์์ CSS Module ์ฌ์ฉํ๊ธฐ
[TS] ํ์ ์คํฌ๋ฆฝํธ์์ CSS Module ์ฌ์ฉํ๊ธฐ
2024.05.11 -
[JS] ํน์ ์์ ์์น๋ก ์คํฌ๋กค ์ด๋ํ๊ธฐ - scrollIntoView
[JS] ํน์ ์์ ์์น๋ก ์คํฌ๋กค ์ด๋ํ๊ธฐ - scrollIntoView
2024.05.11 -
[React] ๋ฆฌ์กํธ Render Props ํจํด 2๊ฐ์ง ์ฌ์ฉ ๋ฐฉ๋ฒ
[React] ๋ฆฌ์กํธ Render Props ํจํด 2๊ฐ์ง ์ฌ์ฉ ๋ฐฉ๋ฒ
2024.05.11