The destructuring assignment is a new syntax to get a part of an array or of an object and assign it to a variable in a more convenient way. It is also possible to set default values when using destructuring assignment.
const user = { name: 'Zaiste', } const { name, age } = user; console.log(age); // undefined
const
creates variables, so in the previous example age
is undefined
.
const user = { name: 'Zaiste', } const { name = 'Basia', age = 21 } = user; console.log(name); // Zaiste console.log(age); // 21
Default values in destructuring assignement only work if the variables either don't exist or their value is set to undefined
. Any other value, including null
, false
and 0
, bypasses the default values in the destructuring statement.
const dummy = { name: undefined } const { name = 'Basia' } = dummy; console.log(name) // Basia
while for null
:
const dummy = { name: null } const { name = 'Basia' } = dummy; console.log(name) // null
You can combine default values with renaming in the destructuring assignment.
const user = { name: 'Zaiste', } const { name: author = 'Basia', age = 21 } = user; console.log(author); // Zaiste
This creates author
variable, while name
is just a label to specify the field to destruct against - it doesn't exist as a separate variable.
Top comments (1)
I don't know why but I totally didn't know you could set default destructured arguments! Now it's even more versatile for me.