JavaScriptの任意の連鎖
8315 ワード
JavaScriptの任意の連鎖を返すために使用されます
プロパティが存在しないかどうかを認識していない場合は、スローされているエラーを回避したい場合は、オプションの連鎖を使用して取得する必要があります.
この記事では、どのようにいつ、オプションの連鎖を使用する方法を学びます.また、JavaScriptでオプションの連鎖を使用しないときに学習します.
最初に、入れ子になったオブジェクトのプロパティにアクセスするときに何がうまくいかないかを調べましょう.
しかし、プロパティを追加しましょう
だけでなく、オプションの連鎖を使用して存在する場合は、関数を呼び出すこともできます.
オプションの連鎖は、まだ宣言されていないオブジェクトに適用できません.例えば、
この式に値を割り当てることはできません.言い換えれば、オプションの連鎖表現は左側にはできません. 以下のコードは有効ではありません.
オプションの連鎖は、そうする必要がないときには使用しないでください.アクセスするプロパティが任意で必須ではないことを知っている場合のみ、オプションの連鎖を使用します.
例えば、我々のオブジェクトで
この記事では、JavaScriptのオプションの連鎖がどのように使用されているのか、どのように使用するか、そして使用しないときにどのように動作するかを学びました.
どのようにオプションの連鎖の作品の詳細については、チェックアウトしてくださいMDN documentation 詳細については.
undefined
存在しないオブジェクトプロパティにアクセスし、親プロパティがnull(nullまたは未定義)の場合.プロパティが存在しないかどうかを認識していない場合は、スローされているエラーを回避したい場合は、オプションの連鎖を使用して取得する必要があります.
この記事では、どのようにいつ、オプションの連鎖を使用する方法を学びます.また、JavaScriptでオプションの連鎖を使用しないときに学習します.
動作方法
最初に、入れ子になったオブジェクトのプロパティにアクセスするときに何がうまくいかないかを調べましょう.
let person = {
name: "Murtuza",
work: () => {
return "Software Developer"
},
socials: {
github: {
username: "murtuzaalisurti",
link: "https://github.com/murtuzaalisurti",
proUser: {
is: 'no'
}
},
linkedin: {
username: "murtuzaali-surti",
link: "https://linkedin.com/in/murtuzaali-surti"
},
twitter: {
username: "murtuza_surti",
link: "https://twitter.com/murtuza_surti"
}
}
}
上記のオブジェクトで、プロパティにアクセスしようとしましょうlink
プロパティ内に入れ子になったwebsite
. できますか.console.log(person.website.link); //an error will be thrown
エラーが発生しました.Cannot read property 'link' of undefined
プロパティのウェブサイトは、オブジェクトに存在しません!しかし、プロパティを追加しましょう
website
を返します.null
.website: null
これがうまくいくかどうか調べましょう.console.log(person.website.link); //an error will be thrown
我々は同様のエラーを得る.Cannot read property 'link' of null
前述の通りdefinition , これらのタイプのエラーを扱うためにオプションの連鎖を使用することができます!ここでどのように我々はそれを行うことができますです.構文
// website: property to validate
// link: property to access
website?.link
演算子?.
左側のプロパティがnull
or undefined
そしてもしそうならば、それは単にundefined
エラーを出さずに.つまり、短絡としても知られている.それ以外の場合は、右側のプロパティの値が返されます.だけでなく、オプションの連鎖を使用して存在する場合は、関数を呼び出すこともできます.
person.work?.(args)
また、プロパティを使用してアクセスできます[]
ブラケット.person.socials.github?.["username"]
何ができない
object?.prop // object is not defined
我々は宣言していないobject
, したがって、エラーが発生します.person.socials.github?.["username"] = "name" // not valid
オプションの連鎖を使用する場合は?
オプションの連鎖は、そうする必要がないときには使用しないでください.アクセスするプロパティが任意で必須ではないことを知っている場合のみ、オプションの連鎖を使用します.
例えば、我々のオブジェクトで
person
, 我々はソーシャルメディアプラットフォームを任意に保つことができるので、ユーザーが特定のプラットフォームではないソーシャルメディアアカウントを持っているかどうかわからない.そのためには、ユーザーが特定のプラットフォームでソーシャルメディアアカウントを持っているかどうかをチェックするためにオプションの連鎖を使用することができます.person.socials.github?.["username"]
しかし、ルートオブジェクトでオプションの連鎖演算子を置くと、rootオブジェクトのため、何の意味もありません.person
存在しなければならない、そして、それが存在しないならば、我々は誤りを得るべきです!結論
この記事では、JavaScriptのオプションの連鎖がどのように使用されているのか、どのように使用するか、そして使用しないときにどのように動作するかを学びました.
どのようにオプションの連鎖の作品の詳細については、チェックアウトしてくださいMDN documentation 詳細については.
This post was originally published in Syntackle in collaboration with blog.shahednasser.com
Reference
この問題について(JavaScriptの任意の連鎖), 我々は、より多くの情報をここで見つけました https://dev.to/murtuzaalisurti/optional-chaining-in-javascript-e05テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol