中学理科1629033 views
中学社会667895 views
世界の国562865 views
いろは3002230 views
高校化学2919622 views
MathPython495041 views
高校日本史190258 views
小学算数1198604 views
小学社会309339 views
中学英語810555 views

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 などを使うといいですね。