Thanks for the article Joe. My two cents about this topic, maybe trivial but I am not so sure…
We know that function parameters are passed by values in JS, but it is not said anyway that are also passed as “implicit” let in the direct scope of the function.
I.e.
function f(x,y){
let x = 100; // this raises a syntax error as x is already defined
if(y){ let y = 200;}
return x+y;
}