任意連鎖演算子
1839 ワード
任意連鎖演算子
The
例えば、
?.
ES 2020で導入された新しいJavaScript言語機能です.これは、チェーン内の各参照が有効であることを明示的に検証する必要がなく、ネストされたオブジェクトのプロパティにアクセスする方法を提供します.The
?.
演算子関数は.
参照するとエラーが発生する代わりにnull
or undefined
, 式はundefined
. 関数呼び出しで使用する場合、undefined
を返します.例えば、
const obj = {
prop1: {
prop2: {
prop3: "value"
}
}
};
存在しなかった上記のオブジェクトのプロパティにアクセスしようとすると、obj.prop2.prop3
以下のエラーが発生します:Uncaught TypeError: Cannot read property 'prop3' of undefined
典型的には、論理演算子と三項式を組み合わせて、潜在的に見つからないプロパティの場合を処理することができます.const myProp3 = obj.prop2 && obj.prop2.prop3 ? obj.prop2.prop3 : undefined;
この冗長な構文は、オプションの連鎖演算子を使用する代わりに、myProp3
to undefined
:const myProp3 = obj.prop2?.prop3; //undefined
さらに深くネストされたオブジェクトを扱う場合、オプションの連鎖演算子を同じステートメントで複数回使用することで、プロパティへのアクセスを安全に対応できます.let temp = obj.first?.second?.third?.value;
また、関数コールを使用して関数が存在することを確認することもできます.undefined
:let data = obj.someMethod?.(someArgument); //undefined
配列で使用することもできます.const arr = [5,6,7,8];
arr?.[10] // undefined
マップデータ構造体:let myMap = new Map();
myMap.set("foo", {name: "baz", desc: "inga"});
let nameBar = myMap.get("bar")?.name;
そして最後に、nullish合体演算子??
:const myCar = {
make: "Ford",
details: { year: 1982 }
};
const customerCar = myCar?.make ?? "Unknown Car";
console.log(customerCity); // Unknown Car
Reference
この問題について(任意連鎖演算子), 我々は、より多くの情報をここで見つけました https://dev.to/aarongoldsmith1/optional-chaining-operator-4i9lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol