雑学1472721 views
世界の国560930 views
高校倫理1433840 views
いろは2988729 views
英語608453 views
高校物理158371 views
Computer365450 views
高校生物549999 views
ヒストリア284663 views
中学社会667231 views
Help
Tools

English

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