# Learn the nuts and bolts of Javascript & WebDev

One tip at a time

# A weekly newsletter of tips & tricks

Short emails, designed to be read 10 minutes tops

Mainstream technologies, like Vanilla JS, Lodash, RxJs, and React, that you're likely to use on a day-to-day basis

Based on my experiences with SPAs and front-end best practices

# A 100 tips challenge

Earlier this year, I've made a challenge for myself of writing a list of 100 tips that are useful and interesting

To my surprise, I've finished in around a week. I realized that it contained many tips that are far from trivial, but an elegant solution to an everyday problem.

In this newsletter, I'm posting them one-by-one, in a weekly manner

# A sneak peek

To get a feeling what it is all about, here is the 1st tip. Enjoy!

### Swap variables using the array destructuring operator

Swapping two variables is a typical 0th round technical interview question. It is specifically aimed to immediately disqualify people who have never written code in an imperative language.

The textbook example is, of course, to use a third variable:

```
var tmp = a;
a = b;
b = tmp;
```

There are a few unusual and in fact, ingenious solutions you can use if the variables are numbers, like the bitwise XOR method:

```
a = a ^ b;
b = a ^ b;
a = a ^ b;
```

But ES6 brought the array destructuring operator, which provides the most readable version of all:

```
[b, a] = [a, b];
```

This solution constructs an array with `a`

and `b`

, in this order. Then destructures it in reverse order, so `b`

gets the first value, which is `a`

's, and `a`

gets the second value, which is `b`

's.

How fast is it? Compared to the other methods, it's slow. It constructs an array, assigns the variables, and it leaves some garbage which has to be collected later. But in absolute terms, it's fast, and you shouldn't worry about it.

Now you can ace the 0th step of the technical interview!

##### Try it

##### References

# Privacy policy

You can unsubscribe at any time, in which case you won't receive emails anymore

No spam, no selling of your email address in any ways

No sharing of your email address with a third party, except for providers needed to run the service