var や関数の宣言は window オブジェクトに入るが、let/const は入らない

window オブジェクトはブラウザ環境でのみ存在するグローバルオブジェクトです。Node.js などのサーバーサイド環境では存在しません。

グローバルスコープの変数や関数は実際には window オブジェクトのプロパティとして定義される
var で宣言した変数は window のプロパティになる(let/const は除く)
関数宣言も window のプロパティになる

var と let/const の決定的な違いは window オブジェクトに入るか入らないか。

var foo = 123;

console.log(window.foo); // 123

let bar = 456;
const baz = 789;

console.log(window.bar); // undefined
console.log(window.baz); // undefined

function globalFunc() {}
console.log(window.globalFunc); // function globalFunc() {}

window というグローバル変数を汚したくない場合、let などを使うといいですね。