Новый синтаксис JS «необязательная цепочка» и «двойной вопросительный знак» перешли на этап 3.

JavaScript

Возможно, вы написали такой код

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

Вы хотите, чтобы нижний предел результата был равен 100, если response или response.settings или response.settings.n не существуют (значение равно null или не определено).

Но приведенный выше код также даст результат 100, когда n равно 0, вы действительно хотите, чтобы результат был 0 в это время.

Итак, вы должны написать такой код

const result = response?.settings?.n === undefined ? 100 : response?.settings?.n

Или вы можете завернуть его

const result = fetch(response?.settings?.n, 100)

Теперь вы можете упростить свой код с помощью другого нового синтаксиса — «синтаксиса двойного вопросительного знака Nullish Coalescing»:

const result = response?.settings?.n ?? 100

Это ?? означает, что если значение слева от ?? равно null или не определено, то вернуть значение справа.

Предполагается, что с этими двумя синтаксисами код JS в будущем будет полон вопросительных знаков! Ха-ха.

Категории