序文オプションの連鎖演算子 (?.) を使用すると、チェーン内の各参照が有効であることを明示的に検証しなくても、チェーンの末尾にあるプロパティの値を読み取ることができます。違いは、参照が null または undefined の場合、エラーは発生せず、式の短絡戻り値は undefined になることです。関数呼び出しで使用する場合、指定された関数が存在しない場合は undefined が返されます。 オプションの連鎖演算子を使用すると、存在しない可能性のあるオブジェクト プロパティにアクセスしようとするときに、式のルートが短く簡潔になります。オプションの連鎖演算子は、どのプロパティが存在する必要があるか不明な場合に、オブジェクトの内容を調べるときにも役立ちます。 オプションの連鎖演算子 (?.)文法 オブジェクト?.prop オブジェクト?.[式] 関数?.(引数) 説明するオプションの連鎖演算子は、接続されたオブジェクトを介して渡される参照または関数が未定義または null である可能性がある場合に、接続されたオブジェクトの値へのアクセスを簡素化する方法を提供します。 ネストされたProp = obj.first && obj.first.secondとする エラーを回避するには、obj.first.second にアクセスする前に、obj.first の値が null でも undefined でもないことを確認してください。 obj.first を検証せずに単に obj.first.second にアクセスすると、エラーがスローされる可能性があります。 nestedProp = obj.first?.second とします。 . 演算子の代わりに ?. 演算子を使用すると、JavaScript は obj.first.second にアクセスする前に、obj.first が null でも undefined でもないことを暗黙的に確認します。 obj.first が null または undefined の場合、式は計算を省略し、直接 undefined を返します。 これは次の式と同等ですが、一時変数は実際には作成されません。 temp = obj.first とします。 nestedProp = ((temp === null || temp === undefined) ? undefined : temp.second) とします。 使用babel コンパイラでは連鎖可能な演算子を使用できます。 バベル yarn を @babel/plugin-proposal-optional-chaining --dev に追加します .babelrcファイルを追加する { "プラグイン": ["@babel/プラグイン提案オプションチェーン"] } create-react-appで使用する デフォルトでは、create-react-app は babel 構成の変更を許可しません。ここでは、デフォルトの構成を補足できるように 2 つの追加モジュールをインストールする必要があります。 yarn をカスタマイズ-cra react-app-rewired --dev に追加します config-overrides.js ファイルを追加する const { useBabelRc, override } = require('customize-cra'); モジュール.exports = override(useBabelRc()); package.json を変更する 「スクリプト」: { "開始": "react-app-rewired 開始", "ビルド": "react-app-rewired ビルド", "テスト": "react-app-rewired テスト --env=jsdom" } エスリント babel コンパイラをインストールすると、?. 演算子を使用できるようになります。ただし、eslint を使用する場合は、この新しい構文を認識するために babel-eslint をインストールする必要があります。 yarn に babel-eslint --dev を追加します .eslintrc ファイルを追加する { "パーサー": "babel-eslint", 「ルール」: { "厳密": 0 } } vscodeでの使用 vscode の js バリデーターは現在 ?. 演算子を認識しないため、エラー警告が表示されます。 エラー警告を解決するには: vscode 拡張機能 ESLint をインストールし、拡張機能ストアで ESLint を検索してインストールします。 vscode 構成 (.vscode/settings.json) を変更します。 { "eslint.alwaysShowStatus": true、 "eslint.autoFixOnSave": true、 "javascript.validate.enable": false, // 主にこれ、vscode の js バリデータをオフにします "[javascript]": { "editor.formatOnSave": false, }, "[javascriptreact]": { "editor.formatOnSave": false, }, } ソース: オプション連鎖演算子 js オプション連鎖演算子の使用に関するこの記事はこれで終わりです。より関連性の高い js オプション連鎖演算子のコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Centos7.5 は mysql5.7.24 バイナリ パッケージの展開をインストールします
>>: MYSQL8.0.13 無料インストール版 設定チュートリアル例 詳細説明
MySQLリモート接続の問題に関しては、会社で働いているときに誰かのコンピュータに保存されているMy...
MySQL 全文検索中国語ソリューション最近、会社のプロジェクトで、データベースで中国語を検索する機...
Vue3プロジェクトのカプセル化サイドナビゲーションテキストスケルトン効果コンポーネント-グローバル...
目次1. カスタム指示とは何ですか? 2. 指示をカスタマイズする方法フック機能3. 応用シナリオ入...
目次MySQL 複数インスタンスマルチインスタンスの概要マルチインスタンスとは何ですか?複数のインス...
面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...
Linux で MySQL データベースをアンインストールするにはどうすればいいですか? 以下では、...
序文ルーティングの管理は、ほとんどのシングルページ アプリケーションにとって不可欠な機能です。 Vu...
フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...
Mysql で特定のフィールドからスペースを一括削除する方法はありますか?文字列の前後のスペースだけ...
この記事では、参考までにMySQL zipファイルをインストールする具体的な方法を紹介します。具体的...
MySQL データベースに保存されるデータが徐々に増加すると、元のストレージ領域がいっぱいになり、M...
次のコードを index.html などのデフォルトのホームページ ファイルとして保存し、ルート デ...
目次1.Linuxログインインターフェース2. コードを書く3. Makefileを書く4. コンパ...
地球の円周率と半径、検索ポイントの経度と緯度から、検索ポイントと検索データテーブル間の距離はNキロメ...