https://medium.com/javascript-decoded-in-plain-english/can-you-guess-what-this-javascript-code-outputs-most-get-it-wrong-cb6afaa67aa7