https://javascript.plainenglish.io/mastering-variable-shadowing-in-javascript-a-comprehensive-guide-f0192adc30bc