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.