[解決済み] window.locationと単なるlocationの比較
2023-05-15 12:22:23
質問
ウェブ上では、非常に多くのJavaScriptプログラマが
window.location
ではなく、単に
location
. その理由を説明できる人がいるかどうか知りたかったのです。
window
はグローバルオブジェクトなので、入れる必要はないのでは?というのは、人が
window.Math.floor
とか
new window.Date()
で指定される理由が気になります。
location
.
私は、以下のことを理解しています。
location
は、今いるウィンドウの "property" と見なされることを理解し、それはある程度理にかなっていると思います。しかし、そうであっても、グローバル オブジェクトを指定する理由は見当たりません。
location
を上書きすることは不可能であり、ページをリダイレクトすることもできません。
では、これは単に長い間使われてきて、私たちが JavaScript を書く方法と一体化してしまった癖なのでしょうか、それともこの方法で物事を行う具体的な理由があるのでしょうか?Google で調べてみましたが、残念ながら何も出てきませんでした...。
どうすれば解決するのか?
私はいつも
window.location
を使っています。
-
可能な限りグローバル変数を避けるのは良い習慣です。グローバル変数を使用すると
window.
プレフィックスを使うことで、その変数がグローバルであり、他はそうでないことを思い出させてくれます。 -
Javascriptのスコープの性質上、スコープツリーの上位に設定された変数を上書きすることができます。 これはつまり、あなたが設定した
var location
を含むスコープのどこか(変数名として使用するのはありえない言葉ではありません)に設定することができ、代わりにそれを扱うことになります。
私にとって、コーディング時の目的を明確にすることは、バグを書くのを避け、書いたときにそれを見つけるのを助けるので、非常に重要です。
関連
-
[解決済み] iOS 8で位置情報サービスが利用できない
-
[解決済み] JavaScriptでwindow.location(URL)からハッシュを削除する方法 ページを更新せずに?
-
[解決済み] Javascriptを使用しています。location.href と location の比較
-
[解決済み】window.location=とwindow.location.replace()はどう違うの?)
-
[解決済み】JavaScriptのwindow.locationとdocument.locationの違いは何ですか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptでHTTPまたはHTTPSを検出し、HTTPSを強制的に実行する
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法