中学理科1631666 views
高校国語788848 views
中学英語812311 views
教育149663 views
高校物理160808 views
小学社会310824 views
小学算数1201510 views
数学講師2894363 views
小学理科720453 views
英語614821 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 などを使うといいですね。