ブラウザのトップレベルでvar宣言するとグローバルオブジェクト
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ブラウザのトップレベルでvar宣言</title>
</head>
<body>
<script>
// ここはトップレベル
var グローバル = true
console.log(window.グローバル) // true
// グローバル変数にならない
let トップ = true
const 定数 = true
function 関数(){ var ローカル = true }
console.log(window.トップ, window.定数, window.ローカル) // undefined undefined undefined
// function宣言ではグローバルオブジェクトになるが、class宣言では違う
class クラス{}
console.log(window.関数 === 関数, window.クラス) // true undefined
</script>
</body>
</html>