JS新文法「オプションチェーン」「ダブル疑問符」がステージ3に入りました.

1454 ワード

このようなコードを書いたことがあります.
var street = user.address && user.address.street;
この新しい文法があったら、書き上げてもいいです.
var street = user.address?.street
このコードも書いたかもしれません.
var fooInput = myForm.querySelector('input[name=foo]')
var fooValue = fooInput ? fooInput.value : undefined
新しい文法ができたら、書き上げてもいいです.
var fooValue = myForm.querySelector('input[name=foo]')?.value
でも実際に使うと、ちょっと不便です.
const result = response?.settings?.n || 100
レスポンスまたはレスポンス.settingsまたはレスポンス.settings.settings.nが存在しない場合(nullまたはundefinedの値)、レスリングの最低値は100です.
ただし、上のコードはnが0の時にも、reultが100になりますので、実際にはその時にはreultが0になることを望んでいます.
それでコードをこう書くしかないです.
const result = response?.settings?.n === undefined ? 100 : response?.settings?.n
それともカプセル化してください.
const result = fetch(response?.settings?.n, 100)
今はもう一つの新しい文法である「双疑問符文法」を使ってコードを簡略化してもいいです.
const result = response?.settings?.n ?? 100
これですかもし?左の値がnullかundefinedであれば、右の値に戻ります.
この二つの文法があったら、JSコードの中は疑問符だらけになると思います.ははは
転載先:https://juejin.im/post/5d3a7603f265da1b9254209b