https://medium.com/@arnoldgunter/if-you-know-these-7-javascript-things-youre-not-a-beginner-6781e6c75ea1