[JS] ์ JSX ์์์ if ๋ฌธ์ ์ฌ์ฉํ ์ ์์๊น? ํํ์๊ณผ ๋ฌธ ์ฐจ์ด์
TL;DR
๏ฟญ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ์ผ๋ จ์ ๋ฌธ(Statement)์ผ๋ก ๊ตฌ์ฑ๋๋ค
๏ฟญ ๊ฐ ๋ฌธ์ ๋ณ์ ์์ฑ, if
, else
์กฐ๊ฑด ์คํ, ๋ฃจํ ์์๊ณผ ๊ฐ์ ์์
์ ์ํํ๋ ๋ช
๋ น์ด๋ค
๏ฟญ ํํ์์ ๊ฐ์ ์์ฑํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ค → ํํ์์ ํญ์ ๊ฐ์ ์์ฑํ๋ค
๏ฟญ ๋ชจ๋ ํจ์์ ์ธ์๋ ํํ์์ด๋ค. ๋ฌธ์ ๊ฐ์ ์์ฑํ์ง ์์ผ๋ฏ๋ก ํจ์ ์ธ์์ ์ฌ์ฉํ ์ ์๋ค
๏ฟญ ๋ฌธ์ ํ๋ก๊ทธ๋จ์ ํ๋๋ก ๋ฌถ๋ ๋จ๋จํ ๊ตฌ์กฐ์ด๋ฉฐ, ๋ฌธ์ ์ธ๋ถ์ฌํญ์ ํํ์์ผ๋ก ์ฑ์์ง๋ค
๏ฟญ ํํ์์ ๋จ๋ ์ผ๋ก ์กด์ฌํ ์ ์๊ณ , ํญ์ ๋ฌธ์ ์ผ๋ถ๋ค
๏ฟญ ๋ฌธ์ ํํ์ ์ฌ๋กฏ์ ์ ์ธํ๊ณค ๋ณธ์ง์ ์ผ๋ก ๋น์ด์๋ค
๏ฟญ ๋ฌธ์ด ๋น์ด ์์ ๋๋ ํํ์์ ํญ์ ๋ฌธ์ ์ผ๋ถ๋ค
๏ฟญ JSX์ {}
์ค๊ดํธ๋ ํํ์ ์ฌ๋กฏ์ ๋ง๋ ๋ค
๏ฟญ ํํ์ ์ฌ๋กฏ์์ ๊ฐ์ ์์ฑํ์ง ์๋ ๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค
ํํ์ | Expressions
๏ฟญ ํํ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ ์์ฑํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ค
๏ฟญ ์ฆ, ํํ์์ ํญ์ ๊ฐ์ ์์ฑํ๋ค
๏ฟญ ์๋ ์ฝ๋๋ ๋ชจ๋ ํํ์์ด๋ค
// ์๋ ์ฝ๋๋ ๋ชจ๋ ํํ์์ด๋ค
1 // 1 ์์ฑ
("hello") // 'hello' ์์ฑ
5 * 10 // 50 ์์ฑ
num > 100 // true | false ์์ฑ
isHappy ? "๐น๐ญ" : "๐ฐ๐ท" // ์ด๋ชจ์ง ์์ฑ
[1, 2, 3].pop() // 3 ์์ฑ
๏ฟญ ํํ์์ ํํ์์ ํฌํจํ ์ ์๋ค.
๏ฟญ (5 + 1) * 2
ํํ์ ์์ ๋ช ๊ฐ์ ํํ์์ด ์์๊น?
- ์ ์ฒด ํํ์ :
(5 + 1) * 2
→12
๋ก ํ๊ฐ - ๊ดํธ์ ๋ง์
:
(5 + 1)
→6
์ผ๋ก ํ๊ฐ - ๊ดํธ์ ์ฒซ๋ฒ์งธ ์ซ์ :
5
→5
๋ก ํ๊ฐ - ๊ดํธ์ ๋๋ฒ์งธ ์ซ์ :
1
→1
๋ก ํ๊ฐ - ๊ณฑํ๋ ์ :
2
→2
๋ก ํ๊ฐ
๋ฌธ | Statements
๏ฟญ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ์ผ๋ จ์ ๋ฌธ(Statement)์ผ๋ก ๊ตฌ์ฑ๋๋ค
๏ฟญ ๊ฐ ๋ฌธ์ ์ปดํจํฐ์๊ฒ ํน์ ์์ ์ ์ง์ํ๋ค
๏ฟญ ์๋๋ ๋ํ์ ์ธ ๋ฌธ์ ์์
let num = 5;
if (num > 10) { /* More statements here */ }
throw new Error("Something exploded!");
๏ฟญ ๋ฌธ์ ํ๋ก๊ทธ๋จ์ ํ๋๋ก ๋ฌถ๋ ๋จ๋จํ ๊ตฌ์กฐ์ด๋ฉฐ, ๋ฌธ์ ์ธ๋ถ์ฌํญ์ ํํ์์ผ๋ก ์ฑ์์ง๋ค
๏ฟญ ๋ฌธ์๋ ํํ์์ ๋ฃ์ ์ ์๋ ์ฌ๋กฏ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค
๏ฟญ ํํ์ ์ฌ๋กฏ์ ๋ชจ๋ ์ข ๋ฅ์ ํํ์์ ์ฌ์ฉํ ์ ์๋ค
๏ฟญ ๋ณ์ ์ ์ธ์๋ ํํ์ ์ฌ๋กฏ์ด ์๋ค(ํ ๋น๋ฌธ)
let hi = /* ํํ์ ์ฌ๋กฏ */;
let hi = 1;
let hi = 'hello';
let hi = 5 * 10;
let hi = num > 100;
let hi = isHappy ? "๐น๐ญ" : "๐ฐ๐ท";
let hi = [1, 2, 3].pop();
๏ฟญ ํ ๋น๋ฌธ์ ๊ฐ์ผ๋ก ํ๊ฐ๋๋ฏ๋ก ํํ์์ธ ๋ฌธ์ด๋ค
๏ฟญ ์ ์ธ๋ฌธ์ ๊ฐ์ผ๋ก ํ๊ฐ๋์ง ์์ผ๋ฏ๋ก ํํ์์ด ์๋ ๋ฌธ์ด๋ค
๏ฟญ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์์ ํํ์์ด ์๋ ๋ฌธ์ ํญ์ undefined
๋ฅผ ๋ฐํํ๊ณ , ํํ์์ธ ๋ฌธ์ ํญ์ ๊ฐ์ ๋ฐํํ๋ค
let hi; // ์ ์ธ๋ฌธ | ํํ์์ด ์๋ ๋ฌธ
// undefined | ํํ์์ด ์๋ ๋ฌธ์ด๋ฏ๋ก undefined ๋ฐํ(์ถ๋ ฅ)
let hi = 1; // ํ ๋น๋ฌธ | ํํ์์ธ ๋ฌธ
// 1 | ํํ์์ธ ๋ฌธ์ด๋ฏ๋ก 1์ด๋ผ๋ ๊ฐ์ ํ๊ฐํ์ฌ 1 ๋ฐํ(์ถ๋ ฅ)
๏ฟญ ๋ฌธ์ ํํ์ ์ฌ๋กฏ์ด ์๊ณ , ์ฌ๋กฏ์ ํํ์์ ๋ฃ์ผ๋ฉด ์ฝ๋๊ฐ ์คํ๋๋ค. ๋ฌธ๋ฒ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค
๏ฟญ ํ์ง๋ง ์๋ ๊ฐ์ ์ฝ๋์์ ๋ฌธ๋ฒ ์๋ฌ๋ ์์ง๋ง ์คํํ๋ฉด ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ๋ค
while ('hello') {
// while ์กฐ๊ฑด์ ๊ดํธ๊ฐ ํํ์ ์ฌ๋กฏ์ด๋ค
// 'hello'๋ ๋ฐ๋์ง ์๋ ๊ฐ์ด๋ฏ๋ก ์คํฌ๋ฆฝํธ๊ฐ ์ถฉ๋ํ ๋๊น์ง ๊ณ์ ์คํ๋๋ค
// ๋ฌธ์ ๊ฐ ์๋ ๋ฌธ๋ฒ์ด์ง๋ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋(?) ์ํฉ
}
๋ฌธ / ํํ์ ํ์ธ ๋ฐฉ๋ฒ
console.log(/* Some chunk of JS here */);
๏ฟญ ํน์ ์ฝ๋ ์กฐ๊ฐ์ด ๋ฌธ / ํํ์์ธ์ง ํ์ธํ๊ณ ์ถ์ผ๋ฉด ์ฝ์ ๋ก๊ทธ๋ฅผ ํ์ฉํ์
๏ฟญ ๋ฌธ์ ์์ด ์คํ๋๋ฉด ์ ๋ ฅํ ์ฝ๋ ์กฐ๊ฐ์ ํํ์์ด๋ค
๏ฟญ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๋ฌธ ํน์ ์๋ชป๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ค
๏ฟญ ๋ธ๋ผ์ฐ์ ์ฝ์์์ ํํ์์ ์ด๋ป๊ฒ ํด์(ํ๊ฐ)ํ๋์ง ์ถ๋ ฅ๊ฐ์ ํตํด ๋ฐ๋ก ์ ์ ์๋ค
๏ฟญ ๋ชจ๋ ํจ์์ ์ธ์๋ ํํ์์ด๊ธฐ ๋๋ฌธ์ ์ ๊ฐ์ ํธ๋ฆญ์ด ๊ฐ๋ฅํ ๊ฒ
๏ฟญ ํํ์์ ๊ฐ์ ์์ฑํ๊ณ ํจ์๋ก ์ ๋ฌ๋๋ค
๏ฟญ ๋ฌธ์ ๊ฐ์ ์์ฑํ์ง ์์ผ๋ฏ๋ก ํจ์ ์ธ์์ ์ฌ์ฉํ ์ ์๋ค
ํํ์์ธ ๋ฌธ (Expressions as statements)
๏ฟญ 1 + 2 + 3
ํํ์์ ์๋ฌด ๋ด์ฉ๋ ์๋ test.js ํ์ผ์ ์ถ๊ฐํ๋ค๊ณ ๊ฐ์ ํด๋ณด์
๏ฟญ test.js ํ์ผ์ ๋ช ๊ฐ์ ๋ฌธ์ด ์๋๊ฑธ๊น? 0๊ฐ?
๏ฟญ ํํ์์ ๋จ๋ ์ผ๋ก ์กด์ฌํ ์ ์๋ค. ํํ์์ ํญ์ ๋ฌธ์ ์ผ๋ถ๋ค
๏ฟญ ๋ฐ๋ผ์ test.js ํ์ผ์ ์๋์ ๊ฐ์ ๋ฌธ์ด ์๋ค๊ณ ๋ณผ ์ ์๋ค
/* ํํ์ ์ฌ๋กฏ */
๏ฟญ ๋ฌธ์ ํํ์ ์ฌ๋กฏ์ ์ ์ธํ๊ณค ๋ณธ์ง์ ์ผ๋ก ๋น์ด์๋ค
๏ฟญ ๋ฌธ์ ํํ์ ์ฌ๋กฏ์ 1 + 2 + 3
ํํ์์ ์ฑ์ฐ ๋ฌธ์ด ์์ฑ๋๋ค
๏ฟญ ์๋๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๋ฌธ์ด๋ค
// ๋ฌธ 1 (ํ ๋น๋ฌธ)
let hi = /* ํํ์ ์ฌ๋กฏ */;
// ๋ฌธ 2 (์กฐ๊ฑด๋ฌธ)
if (/* ํํ์ ์ฌ๋กฏ */) { }
// ๋ฌธ 3 (๋ฆฌํด๋ฌธ)
return /* ํํ์ ์ฌ๋กฏ */;
// ๋ฌธ 4
/* ํํ์ ์ฌ๋กฏ */
๏ฟญ ํํ์๊ณผ ๋ฌธ์ ๋ณ๊ฐ๋ค. ํํ์์ด ๋ฌธ์ด๋ผ๊ณ ์ค๋ช ํ๋๊ฑด ์๋ชป๋ ๊ฒ
๏ฟญ ์์ฒ๋ผ ์ถ๊ฐ์ ์ธ ๋ฌธ์๋ฅผ ์ ๊ณตํ์ง ์์๋ ๋ฌธ์ ํํ์์ ๊ฐ์ ์ ์๋ค
๏ฟญ ํฌ๋ช ํ ๋น๋ ๋ฉ(๋ฌธ)์ผ๋ก ์๋์์น(ํํ์)๋ฅผ ํฌ์ฅํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค
๏ฟญ ๋ฌธ์ ๋์ ;
์ธ๋ฏธ์ฝ๋ก ์ ๋ถ์ธ๋ค(๋ฌธ์ ์ข
๋ฃ๋ฅผ ๋ํ๋)
๏ฟญ 0๊ฐ ์ด์์ ๋ฌธ์ {}
์ค๊ดํธ๋ก ๋ฌถ์ ์ฝ๋ ๋ธ๋ก ๋ค์ ๋ถ์ด์ง ์๋๋ค(if
, while
, for
, ํจ์ ์ ์ธ
๋ฑ)
๏ฟญ ์ธ๋ฏธ์ฝ๋ก ์ ์ต์ ์ด๋ค
JSX์์ ์ค๊ดํธ โก๏ธ
๏ฟญ (React) JSX ์์์ {}
์ค๊ดํธ๋ฅผ ์ด์ฉํด ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ถ๊ฐํ ์ ์๋ค
function CountdownClock({ secondsRemaining }) {
return (
<div>
Time left:
{Math.round(secondsRemaining / 60)} minutes!
</div>
);
}
๏ฟญ ํ์ง๋ง JSX ์ค๊ดํธ {}
์์์ if
, else
๊ฐ์ ๋ฌธ(Statement)์ ์ฌ์ฉํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค
function CountdownClock({ secondsRemaining }) {
return (
<div>
{
// ๐ซ Error!
if (secondsRemaining > 0) { `${secondsRemaining} seconds left` }
else { "Time expired!" }
}
</div>
);
}
๏ฟญ JSX์์ {}
์ค๊ดํธ๋ ํํ์ ์ฌ๋กฏ์ ๋ง๋ ๋ค
๏ฟญ ํํ์ ์ฌ๋กฏ์์ ๊ฐ์ ์์ฑํ์ง ์๋ ๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค
๏ฟญ ์ฆ, JSX {}
์ค๊ดํธ ์์์ ๊ฐ์ ์์ฑํ๋ ํํ์๋ง ์ฌ์ฉํ ์ ์๋ค
๏ฟญ ๋ฐ๋ผ์ if
, else
๋ฌธ ๋์ ์ผํญ ์ฐ์ฐ์(Ternary operator)๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค
function CountdownClock({ secondsRemaining }) {
return (
<div>
{secondsRemaining > 0 // โ
OK
? `${secondsRemaining} seconds left`
: "Time expired!"}
</div>
);
}
๏ฟญ ์ผํญ ์ฐ์ฐ์๋ ์กฐ๊ฑด์ ํ๊ฐํ๊ณ ์กฐ๊ฑด์ ์ฐธ/๊ฑฐ์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฐ์ ๋ฐํํ๋ ํํ์์ด๋ค
๋ ํผ๋ฐ์ค
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[React] ๋ ธ๋์ ํธ๋ฆฌ ์์น๋ฅผ ๋ํ๋ด๋ useId ํ
[React] ๋ ธ๋์ ํธ๋ฆฌ ์์น๋ฅผ ๋ํ๋ด๋ useId ํ
2024.05.13 -
[TS] ์๋ฆฌ๋จผํธ์ ๊ธฐ๋ณธ ์ดํธ๋ฆฌ๋ทฐํธ ์ธํฐํ์ด์ค/ํ์ ์ฌ์ฉํ๊ธฐ
[TS] ์๋ฆฌ๋จผํธ์ ๊ธฐ๋ณธ ์ดํธ๋ฆฌ๋ทฐํธ ์ธํฐํ์ด์ค/ํ์ ์ฌ์ฉํ๊ธฐ
2024.05.12 -
[TS] useQuery, useMutation์ ์ ๋ค๋ฆญ ํ์ ์ดํด๋ณด๊ธฐ / Base Query ํ ๋ง๋ค๊ธฐ
[TS] useQuery, useMutation์ ์ ๋ค๋ฆญ ํ์ ์ดํด๋ณด๊ธฐ / Base Query ํ ๋ง๋ค๊ธฐ
2024.05.12 -
[React] ๋ฆฌ์กํธ ์ฟผ๋ฆฌ(React Query) staleTime์ ์ค์ ํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
[React] ๋ฆฌ์กํธ ์ฟผ๋ฆฌ(React Query) staleTime์ ์ค์ ํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
2024.05.12