JS/ES6: Разрушение undefined
Я использую деструктурирование следующим образом:
const { item } = content
console.log(item)
Но как мне обрабатывать content === undefined
- который выдает ошибку?
"Старый" способ будет выглядеть так:
const item = content && content.item
Итак, если content
- undefined → item
, также будет undefined.
Можно ли сделать что-то подобное, используя деструктурирование?
Ответы
Ответ 1
Вы можете использовать оценку короткого замыкания, чтобы задать значение по умолчанию, если content
является ложным значением, обычно undefined
или null
в этом случае.
const content = undefined
const { item } = content || {}
console.log(item) // undefined
Ответ 2
Принятый ответ не работает для действительно неопределенных значений, которые не были установлены const content = undefined
. в таких случаях это будет работать:
const { item } = (typeof content !== 'undefined' && content) || {}
console.log(item)