目次
どんな問題がありますか??解決する?
どうしますか??異なる値で動作しますか?
いつ使うべきですか?? ||の代わりに?
オペレーターの優先順位に関する簡単なメモ
ホームページ ウェブフロントエンド jsチュートリアル Nullish Coulescingオペレーター(??)とは何ですか?

Nullish Coulescingオペレーター(??)とは何ですか?

Jun 26, 2025 am 12:54 AM
null値マージオペレーター

??オペレーターは、||を使用してデフォルト値を設定するときに、0、空の文字列、またはfalseなどの有効な値を誤って除外する可能性があるという問題を解決します。左側がnullまたは未定義である場合にのみ、右側のデフォルト値を返し、他の誤った値を除外しません。例:itemcount ?? 5 ItemCountがnullまたは未定義の場合は5を使用しますが、0または空の文字列の場合、元の値が保持されます。使用法のシナリオには、正確な制御が必要なユーザー入力、オプションのオブジェクトプロパティなどの処理、および使用||の使用が含まれます。現時点では好ましいです。さらに、オペレーターの優先事項の問題を回避するために、複雑な表現でブラケットを使用する必要があります。

Nullish Coulescingオペレーター(??)とは何ですか?

Nullish Coulescingオペレーター( ?? )は、左側の演算子がnullまたはundefined場合に右側のオペレーターを返すJavaScriptの論理演算子です。 0'' 、またはfalseなどの他の誤った値を無効と扱うことなく、デフォルト値を設定するのに役立ちます。


どんな問題がありますか??解決する?

前に??既存の開発者は、多くの場合、論理または演算子( || )を使用してフォールバック値を提供しました。例えば:

 name = username || 'ゲスト';

usernamenullまたはundefinedの場合、これは正常に機能します。しかし、それはまた、値を空の文字列''0 、またはfalseのように扱い、フォールバックをトリガーします - それは意図されていないかもしれません。

?? 、値が本当にnullまたはundefined場合にのみ後退します。だからこれ:

 count = itemCountとしますか? 5;

平均: itemCountが正確にnullまたはundefined場合は、 5使用します。 0'' 、またはその他の値の場合は、それを保持します。


どうしますか??異なる値で動作しますか?

これがどのように??さまざまな入力で動作します:

  • null ?? 'default''default'
  • undefined ?? 'default''default'
  • 0 ?? 1000無効として扱わない)
  • '' ?? 'fallback''' (空の文字列は有効と見なされます)
  • false ?? truefalse (まだ実際の値を返します)

したがって、 ||とは異なります、 ??真実性を気にしません - それはnullまたはundefinedのみをチェックします。


いつ使うべきですか?? ||の代わりに?

使用?? 0'' 、またはfalseのような誤った値を許可したい場合でも、 nullまたはundefinedから守りたい場合。

いくつかの実用的な例:

  • 0または空の文字列になる可能性のあるデフォルトのユーザー入力:

     const userInput = ''; 
    const value = userInput ?? 'デフォルト'; //空の文字列を保持します
  • オプションのオブジェクトプロパティの処理:

     const config = {timeout:0};
    const timeout = config.timeout ?? 1000; // 1000ではなく0を使用します

すべてのfalsy値をフィルタリングしても大丈夫なら、 ||に固執します。しかし、より正確なコントロールが必要な場合は、一緒に行きます??


オペレーターの優先順位に関する簡単なメモ

組み合わせることに注意しますか?? ||のような他の論理演算子とまたは&& 。 Nullish Coulescingオペレーターは、比較演算子よりも優先されますが、割り当て演算子よりも優先されます。

特に複雑な表現で混乱を避けるために、操作を保護者に包みます。

結果=(value ?? defaultValue) * 2;

また、使用??および||同じ式では、適切にグループ化されない限り、エラーを引き起こす可能性があります。


要するに、 ??偽の領域に踏みつけずに欠損値を処理するよりクリーンな方法を提供します。ユーザー入力、構成設定、またはAPI応答を扱うときに特に便利です||誤解を招く可能性があります。

それは基本的にそれが何をするかです - あまりにも空想的なことはありませんが、それらのエッジケースにヒットすると間違いなく役立ちます。

以上がNullish Coulescingオペレーター(??)とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

TypeScriptの高度な条件付きタイプ TypeScriptの高度な条件付きタイプ Aug 04, 2025 am 06:32 AM

TypeScriptの高度な条件タイプは、TextEndsu?X:Y Syntaxを介してタイプ間の論理的判断を実装します。そのコア機能は、分散条件タイプ、推測タイプの推論、および複雑なタイプのツールの構築に反映されます。 1.条件付きタイプは、裸の型パラメーターに分散され、string [] | number []を取得するためにtoArrayなどのジョイントタイプを自動的に分割できます。 2.分布を使用してフィルタリングおよび抽出ツールを構築します。除外textendsuを除く除外:t、抽出抽出抽出extract textendsu?t:never、およびnullable filters null/undefined。 3

マイクロフロントエンドアーキテクチャ:実用的な実装ガイド マイクロフロントエンドアーキテクチャ:実用的な実装ガイド Aug 02, 2025 am 08:01 AM

MicrofRontendsSolvessCallingChallengesimSimSimSimsByEnablingEndependDevelymentAndDeployment.1)chooseanintegrations trategy:usemodulefederationinwebpack5forruntimeloadingindingindrueindopendence、build-time-integrationforsimplestups、oriframes/webcomponents

JavaScriptで配列の長さを見つける方法は? JavaScriptで配列の長さを見つける方法は? Jul 26, 2025 am 07:52 AM

JavaScriptアレイの長さを取得するには、組み込みの長さプロパティを使用できます。 1. .length属性を使用して、constfruits = ['apple'、 'banana'、 'orange']; console.log(fruits.length); // output:3;など、配列内の要素の数を返します。 2.この属性は、文字列、数字、オブジェクト、または配列などのあらゆるタイプのデータを含む配列に適しています。 3.長さの属性は自動的に更新され、要素が追加または削除されると、その値はそれに応じて変更されます。 4.ゼロベースのカウントを返し、空の配列の長さは0です。 5.長さの属性は、手動で変更して配列を切り捨てたり拡張したりすることができます。

javascriptのvar、let、constの違いは何ですか? javascriptのvar、let、constの違いは何ですか? Aug 02, 2025 pm 01:30 PM

varisfunction-scoped、canbereasSigned、hoisted witHedededined、andattachedtotheglobalwindow object;

JavaScriptのプロキシを理解し、APIを反映します JavaScriptのプロキシを理解し、APIを反映します Jul 26, 2025 am 07:55 AM

プロキシと反射APIは、JavaScriptでオブジェクト操作を傍受およびカスタマイズするために使用される強力なツールです。 1。ターゲットオブジェクトのラップと「トラップ」を定義することにより、GETなどの操作をブロックし、ログ、検証、読み取り専用コントロールなどの関数を実装します。 2。反射は、デフォルトの動作の一貫性と正しさを確保し、コードメンテナビリティを改善するために、プロキシトラップに対応するメソッドを提供します。 3.実際のアプリケーションには、VUE3レスポンシブシステム、データ検証、デバッグログ、不変のオブジェクト、APIシミュレーションが含まれます。 4.パフォーマンスオーバーヘッド、組み込みのオブジェクトの複雑な動作、この結合の問題、およびネストされたオブジェクトを再帰的にプロキシ化する必要があります。 5.合理的な使用は、効率的でデバッグ可能で、リアクティブに構築できます

解決されたダブルチョコレートパズルを生成:データ構造とアルゴリズムのガイド 解決されたダブルチョコレートパズルを生成:データ構造とアルゴリズムのガイド Aug 05, 2025 am 08:30 AM

この記事では、ダブルチョコパズルゲーム用の溶媒があるパズルを自動的に生成する方法を詳細に説明します。効率的なデータ構造 - 境界情報、色、状態を含む2Dグリッドに基づくセルオブジェクトを紹介します。これに基づいて、再帰的なブロック認識アルゴリズム(深さfirst検索と同様)と、それを反復パズル生成プロセスに統合する方法について詳しく説明し、生成されたパズルがゲームのルールを満たし、溶媒があることを確認します。この記事では、サンプルコードを提供し、生成プロセスにおける重要な考慮事項と最適化戦略について説明します。

JSのオプションチェーン(?。)とは何ですか? JSのオプションチェーン(?。)とは何ですか? Aug 01, 2025 am 06:18 AM

optionalchaining(?。)indavascriptsafelyAccessededpropertiesbyReturningifinedifineparturypart ofthechainisnullorundeded、dietlowssafeacesteplynestededededededededobjectproperties、suchasuser.profile?

JavaScriptを使用してDOM要素からCSSクラスを削除するにはどうすればよいですか? JavaScriptを使用してDOM要素からCSSクラスを削除するにはどうすればよいですか? Aug 05, 2025 pm 12:51 PM

JavaScriptを使用してDOM要素からCSSクラスを削除するための最も一般的で推奨される方法は、クラスリストプロパティのremove()メソッドを使用しています。 1。要素を使用して、単一または複数のクラスを安全に削除するには、クラスが存在しなくてもエラーは報告されません。 2.代替方法は、クラス名プロパティを直接操作し、文字列交換でクラスを削除することですが、定期的なマッチングまたは不適切な空間処理のために問題を引き起こすのは簡単であるため、推奨されません。 3.最初にクラスが存在するかどうかを判断してから、element.classlist.contains()を介して削除できますが、通常は必要ありません。 4.クラスリスト

See all articles