https://medium.com/@devendramprasad123/mastering-javascript-hoisting-what-you-need-to-know-ba7d370a5422