undefined é uma excessão caracterizada pela tentativa de uso de uma variável sem declaração.

Acredito que não seja o caso de variável sem declaração, mas sim sem atribuição de valor.

let a
// nesse momento, a variável existe, mas não há valor atribuído a ela