Qraft(クラフト) 資格・学習クイズアプリ

React入門 練習問題 5:条件付きレンダリング

Reactの条件付きレンダリングで次のコードがある場合、画面表示はどうなりますか?

```jsx
const [isLoggedIn, setIsLoggedIn] = useState(false);

return (
<div>
{isLoggedIn && <p>ようこそ</p>}
</div>
);```

  1. 「ようこそ」が表示される
  2. 「false」が表示される
  3. 何も表示されない
  4. エラーが発生する
  5. 「0」が表示される

Qraftユーザーの成績:難易度 Dランク(レーティング1146)・正答率 69%(22/32回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

正解と解説を見る
正解:何も表示されない

`isLoggedIn`が`false`のとき、`{isLoggedIn && <p>ようこそ</p>}`は画面に何も表示しません。

【正解の理由】
論理AND演算子は左辺が`false`だと右辺を評価せず`false`を返す(短絡評価)性質があり、JSXは`false`・`null`・`undefined`・`true`を画面に描画しない仕様のため、結果的に何も表示されません。

【不正解の理由】
• 「ようこそ」が表示される:`isLoggedIn`が`false`なので条件を満たさず、右側の`<p>ようこそ</p>`は評価されない。
• 「false」が表示される:演算結果は`false`だが、JSXは真偽値をそのまま文字として描画しない。
• エラーが発生する:構文的に正しいコードのためエラーにはならない。
• 「0」が表示される:数値の`0`はJSXに描画されてしまう例外があるが、今回の値は`false`(真偽値)であり`0`ではないため、この状況では起こらない。

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)