ホームページ >ウェブフロントエンド >jsチュートリアル >この新しい JavaScript オペレーターは絶対的なゲームチェンジャーです
JavaScript は進化し続け、言語のパフォーマンスと表現力を向上させるために新しい機能と構文を常に導入しています。最も魅力的な改良点の 1 つは、null 合体演算子 (??) です。この演算子は革新的なもので、null
と undefined
の値を操作する簡潔かつ直感的な方法を提供します。この記事では、null 結合演算子を詳しく調べ、その利点を分析し、TypeScript で効果的に使用する方法を説明します。
null 合体演算子 (??) は、左のオペランドが null
または undefined
の場合に右のオペランドを返す論理演算子です。これは、デフォルト値を提供し、論理 OR (||) 演算子に関連する一般的な落とし穴を回避する場合に特に役立ちます。
null 合体演算子が導入される前は、開発者はデフォルト値を提供するために論理 OR (||) 演算子をよく使用していました。ただし、このアプローチには重大な欠点があります。虚数値 (0、''、false など) が null
または undefined
と同等であるということです。
<code class="language-javascript">let value = 0; let defaultValue = value || 10; console.log(defaultValue); // 输出:10</code>
上記の例では、value
は虚数である 0 です。したがって、0 が有効な数値であっても、defaultValue
には値 10 が割り当てられます。この動作により、コード内で予期しない結果やエラーが発生する可能性があります。
null 合体演算子 (??) は、左のオペランドが null
または undefined
の場合にのみ右のオペランドを返すことで、この問題を解決します。これにより、デフォルト値を提供するためのより信頼性の高いオプションになります。
<code class="language-typescript">let value: number | null | undefined = 0; let defaultValue = value ?? 10; console.log(defaultValue); // 输出:0</code>
この例では、value
は 0 であり、null ではありません。したがって、defaultValue
には値 0 が割り当てられ、期待値が維持されます。
null
または undefined
の場合にのみデフォルト値を提供するという意図を明確に伝えます。 TypeScript は null 合体演算子を完全にサポートしているため、TypeScript プロジェクトに簡単に統合できます。いくつかの例を見て、どのように効果的に使用できるかを見てみましょう。
null 合体演算子の最も一般的な使用例の 1 つは、関数パラメーターにデフォルト値を提供することです。
<code class="language-typescript">function greet(name: string | null | undefined, greeting: string = 'Hello'): string { const defaultName = name ?? 'Guest'; return `${greeting}, ${defaultName}!`; } console.log(greet(null)); // 输出:Hello, Guest! console.log(greet(undefined)); // 输出:Hello, Guest! console.log(greet('Alice')); // 输出:Hello, Alice!</code>
この例では、greet
引数が name
または null
の場合、undefined
関数は null 合体演算子を使用してデフォルト名 'Guest' を提供します。
null 合体演算子は、オブジェクト内のオプションのプロパティを処理するために使用することもできます。
<code class="language-javascript">let value = 0; let defaultValue = value || 10; console.log(defaultValue); // 输出:10</code>
この例では、User
インターフェースにはオプションの name
属性と email
属性があります。 null 合体演算子は、これらのプロパティが null
または undefined
の場合にデフォルト値を提供するために使用されます。
null 合体演算子は、配列内の null 値を処理するために使用することもできます。
<code class="language-typescript">let value: number | null | undefined = 0; let defaultValue = value ?? 10; console.log(defaultValue); // 输出:0</code>
この例では、values
配列には数値 null
と undefined
が含まれています。 null 合体演算子は、null 値を 0 に置き換えます。
null 合体演算子は、単純なデフォルト値だけを対象とするものではありません。複数のフォールバック値をチェーンしたり、他の演算子と組み合わせたりするなど、より高度なシナリオでも使用できます。
複数の null 合体演算子をチェーンして、複数のフォールバック値を提供できます。
<code class="language-typescript">function greet(name: string | null | undefined, greeting: string = 'Hello'): string { const defaultName = name ?? 'Guest'; return `${greeting}, ${defaultName}!`; } console.log(greet(null)); // 输出:Hello, Guest! console.log(greet(undefined)); // 输出:Hello, Guest! console.log(greet('Alice')); // 输出:Hello, Alice!</code>
この例では、value
と fallback1
は null であるため、null 合体演算子は値 42 を持つ fallback2
に戻ります。
null 合体演算子は、三項演算子などの他の演算子と組み合わせて、より複雑な条件式を作成できます。
<code class="language-typescript">interface User { id: number; name?: string; email?: string; } const user: User = { id: 1, name: null, }; const displayName = user.name ?? 'Anonymous'; const displayEmail = user.email ?? 'No email provided'; console.log(`User ID: ${user.id}`); console.log(`Display Name: ${displayName}`); console.log(`Display Email: ${displayEmail}`);</code>
この例では、三項演算子を使用して、value
が null
でないかどうかを確認します。 null
ではない場合、null 合体演算子を使用してデフォルト値 10 が設定されます。 value
が null
の場合、結果は 20 になります。
null 合体演算子を使用する場合は、必ずベスト プラクティスに従って、コードが明確で保守しやすく、エラーがないことを確認してください。
null 合体演算子 (??) は、JavaScript および TypeScript 開発者にとって革新的な機能です。これは、null
と undefined
の値を処理する簡潔かつ直感的な方法を提供し、論理 OR 演算子に関連する一般的な落とし穴を回避します。 null 合体演算子を使用すると、より明確で保守しやすく、エラーが発生しにくいコードを作成できます。
デフォルト値を指定する場合でも、オプションのプロパティを処理する場合でも、配列を使用する場合でも、null 合体演算子を使用すれば対応できます。今すぐ TypeScript プロジェクトに統合して、その利点を直接体験してください。
コーディングを楽しんでください!
以上がこの新しい JavaScript オペレーターは絶対的なゲームチェンジャーですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。