jsで変数を定義するときwindows.をつけるときがあります。ぶっちゃけ今のjsにはいらないと思うのですが、必要なのでしょうか?何のためにつけているのでしょうか?

Windows

1件の回答

回答を書く

1145233

2026-01-26 12:45

+ フォロー

Windows.!?あのブラウザ拡張機能内でしか使えないbrowser.Windowsですか?

Windows">https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/Windows



違うよね。window.ですよね。

ブラウザ内で使えてNode.jsでは使えないやつ。



はい、windowにプロパティを生やす(=jsにおけるグローバル変数を宣言する)のは非推奨です。何故なら複数のjsコードがwindow.〇〇に好き勝手に値を出し入れするとバグるからです。今のjsにはいらないというより、変数宣言にはletかconstを使ってください(CDNではjQueryはwindow.$、Lodashはwindow._に関数を入れても許されてる感はあるが……)。



ちなみにトップレベル(コードの1番外側)にて以下のように書くと



A = 1 // window.Aが1になる(悲しい)

var B = 2 // window.Bが2になる(悲しい)

window.C = 3 // window.Cが3になる

function func() {

D = 40 // window.Dが4になる(悲しい)

}

func()



このように、自動的にwindowにプロパティを生やす仕組みが昔からあります。この仕組みは実装後世界中で使われるようになり、恐らく捨てようにも捨てれなくなりました。一方、以下のように書くと



let A = 1

A = 10 // でもwindow.Aはundefinedのまま(嬉しい)



となります。グローバル変数宣言の「A = 10」と再代入の「A = 10」は実質見分けがつきません。よって、\u0026quot;やむを得ず\u0026quot;グローバル変数を宣言したければ、分かりやすさのため「window.A = 10」とすべきです。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有