Let and const have a "temporal dead zone" before initialisation that distinguishes them from var, which is just undefined:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
Runtime TDZ checks can be performance issues:
https://vincentrolfs.dev/blog/ts-var