Destructuring in JavaScript is a syntax feature that allows you to extract multiple items from arrays, or properties from objects, into separate variables. This can make your code more readable and understandable, especially when working with complex data structures.
For example, say we have an object:
```
const user = {
name: ‘John’,
age: 30
};
```
With destructuring you could do:
```
const {name, age} = user;
```
Name and age are now variables in your scope that you can use (instead of having to reference them as `user.name` and `user.age`).
Destructuring can also be used with arrays. Suppose we have:
```
const arrayOfValues = [1, 2, 3, 4, 5]
```
Through destructuring it can be written as:
```
const [first, second, , fourth] = arrayOfValues;
```
Now `first`, `second` and `fourth` are variables holding the values 1, 2 and 4. Note how we skipped the third value in the array.
It’s important to note that when destructuring arrays, the assignment of variables is based on the order of items in the array. When destructuring objects, however, the variables are assigned based on matching property names.