javascript / intermediate
Snippet
Unterscheidung von Nullish Coalescing und logischem ODER beim bedingten JSX-Rendering
In JavaScript sind `0`, `""` und `false` falsy Werte. Die Verwendung des logischen ODER-Operators (`||`) in JSX führt dazu, dass der Zähler 0 fälschlicherweise durch Fallback-Text ersetzt wird. Der Nullish-Coalescing-Operator (`??`) prüft gezielt nur auf `null` und `undefined`.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import React from 'react';export function UserMetricBadge({ count, label, unreadCount }) {// Logical OR (||) treats 0 as falsy, triggering the fallback incorrectlyconst faultyCountDisplay = count || 'No data';// Nullish coalescing (??) only triggers on null or undefined, preserving 0const safeCountDisplay = count ?? 'N/A';// Optional chaining (?.) paired with ?? handles deeply nested fallbacks safelyconst badgeText = unreadCount?.badge ?? 0;return (<div className="metric-badge"><span className="label">{label}:</span><span className="value">{safeCountDisplay}</span><span className="unread">Unread: {badgeText}</span></div>);}
react
Erklärung
1
const faultyCountDisplay = count || 'No data';
Wertet zu 'No data' aus, wenn count 0 ist, da 0 bei der JavaScript-Typumwandlung falsy ist.
2
const safeCountDisplay = count ?? 'N/A';
Wertet zu 0 aus, wenn count 0 ist, und greift nur bei null oder undefined auf 'N/A' zurück.
3
const badgeText = unreadCount?.badge ?? 0;
Liest eine verschachtelte Eigenschaft sicher über Optional Chaining aus und setzt einen Standardwert.