La posibilidad de crear una variable en cualquier scope con nombre cualquiera y crear otra con ese mismo nombre pero en un scope diferente.

Al vivir en diferentes scopes se define que se habla de diferentes variables y diferentes espacios en memoria, aunque se llamen de maneras iguales. Su valor dependerá del scope donde es llamada.

var scope = "i am global";

const functionScope = () => {
  var scope = " i am just local";
  const func = () => {
    return scope
  }
  console.log(func()) //aqui es donde se imprime 
}
functionScope()
console.log(scope)