Learn the nuts and bolts of Javascript & WebDev

From developer to developer

Every few days, you encounter and learn something new. It's called experience, and the more of it you have the better you are

I'm no exception, it happens to me too. These mails are the Aha! moments I encounter almost on a daily basis.

Tap into my experience and improve faster as a professional.

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.