Neste exercício (https://cursos.alura.com.br/course/javascript-es6-orientacao-a-objetos-parte-1/task/23127) tem a seguinte orientação:
Uma maneira de evitar que o valor da variável vaze para fora do if é a seguinte:
var idade = 18;
var temCarteira = true;
(function() {
if(idade >= 18 && temCarteira) {
var msg = 'Pode dirigir';
console.log(msg);
}
})();
alert(msg); // exibe undefined
Mas eu não entendi o que de fato impede o vazamento, pois foi usado var e não let.