
Truthy
(true๋ ์๋์ง๋ง true๋ก ์ฌ๊ฒจ์ง๋ ๊ฐ)
true {} (empty object) [] (empty array) 22 (number, not zero) "0", "false", "hi" (string, not empty)
Falsy
(false๋ ์๋์ง๋ง false๋ผ๊ณ ์ฌ๊ฒจ์ง๋ ๊ฐ)
false 0, -0 (zero, minus zero) 0n (BigInt zero) '', "", `` (empty string) null undefined NaN (not a number)
Element๋ฅผ ๋ณ์์ฒ๋ผ ์ ์ฅํด์ ๋ค๋ฃจ๊ณ ์ฌ์ฉํ๋ ๊ฒ
function LoginControl(props){
const [isLoggedIn, setIsLoggedIn] = useState(false);
const handleLoginClick = () => {
setIsLoggedIn(true);
}
const handleLogoutClick = () =>{
setIsLoggedIn(false);
}
//Element๋ฅผ ๋ณ์์ฒ๋ผ ์ ์ฅ
let button;
if (isLoggediN) {
button = <LogoutButton onClick={handleLogoutClick}/>;
} else {
button = <LogInButton onClick = {handleLoginClick}/>;
}
return (
<div>
<Greeting isLoggedIn = {isLoggedIn}/>
{button} //Element๋ฅผ ์ฌ์ฉ
</div>
)
}
์กฐ๊ฑด๋ฌธ์ ์ฝ๋ ์์ ์ง์ด ๋ฃ๋ ๊ฒ
If ๋ฌธ์ ์ง์ด ๋ฃ๋ ๊ฒ, &&์ฐ์ฐ์ ์ฌ์ฉ
&&์ฐ์ฐ์: ์์ชฝ์ ๋์ค๋ ๊ฒ์ด ๋ชจ๋ true์ฌ์ผ ๊ฒฐ๊ณผ๊ฐ tru๊ฐ ๋จ
true && expression => expresion
false && expression => false์ฒซ๋ฒ์งธ (์๋ถ๋ถ)์ด true ์ด๋ฉด ๋๋ฒ์งธ ์กฐ๊ฑด๋ฌธ (expression)์ ํ๊ฐํ๊ณ ,
์ฒซ๋ฒ์งธ (์๋ถ๋ถ)์ด false์ด๋ฉด expression ์์ฒด๋ฅผ ํ๊ฐํ์ง ์์!
true -> expression์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ์ด ๊ฒฐ๊ณผ
false -> flase expression์ ๊ฒฐ๊ด๊ฐ
function Mailbox(props) {
const unreadMessages = props.unreadMessages;
return(
<div>
<h1>์๋
ํ์ธ์!</hi>
{unreadMessages.length > 0 &&
<h2>
ํ์ฌ {unreadMessages.legnth}๊ฐ ์ฝ์ง ์์ ๋ฉ์ธ์ง๊ฐ ์์ต๋๋ค.
</h2>
}
</div>
);
}
? ์ฐ์ฐ์๋ฅผ ์ฌ์ฉ
?์ฐ์ฐ์: Contion ? true : false
์กฐ๊ฑด๋ฌธ์ด true์ด๋ฉด ์๋ถ๋ถ์ ์ถ๋ ฅ
์กฐ๊ฑด๋ฌธ์ด false์ด๋ฉด ๋ท๋ถ๋ถ์ ์ถ๋ ฅ
//์์ 1
function UserStatus(props){
return(
<div>
์ด ์ฌ์ฉ์๋ ํ์ฌ <b>{props.isLoggedIn ? '๋ก๊ทธ์ธ' : '๋ก๊ทธ์ธ๋์ง ์์'}</b> ์ํ์
๋๋ค
</div>
);
}
//์์ 2
function LoginControl(props) {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const handleLoginClick = () => {
setIsLoggedIn(true);
}
const handleLogoutClick = () => {
setIsLoggedIn(false);
}
return (
<div>
<Gretting isLoggedIn= {isLoggedIn}/>
{isLoggedIn
? <LogoutButton onClick = {handleLogoutClick}/>
: <LogInButton onClick = {handleLogInClick}/>
}
</div>
);
}
null์ return ํ๋ฉด ๋จ!
function WarningBanner(props){
if (!props.warning) {
return null;
}
return(
<div>๊ฒฝ๊ณ !</div>
);
}
//null์ returnํ๋ ํจ์ ์ฌ์ฉ
function MainPage(props) {
const [showWarning, setShowWarning] =useState(false);
const hadleToggleClick = () => {
setShowWarning(prevShowWarning => !prevShowWarning);
}
return (
<div>
<WarningBanner warning={showWarning}/>
<button onClick={handleToggleClick}>
{showWarning ? '๊ฐ์ถ๊ธฐ' : '๋ณด์ด๊ธฐ'}
</button>
</div>
)
}