1. ホーム
  2. ジャバスクリプト

[解決済み】変数宣言に'var'を使うのは任意ですか?重複

2022-03-25 17:35:01

質問

var"はオプションですか?

myObj = 1;

と同じです。

var myObj = 1;

私のテストでは、どちらも動作することがわかりました。 var は省略可能です。そうなんですか?

解決方法は?

意味が違うんです。 もしあなたが var の場合、変数はあなたがいるスコープ(例えば関数の)内で宣言されます。もし var この場合、変数はスコープの階層を上がっていき、指定した名前の変数やグローバルオブジェクト(ブラウザで操作している場合はウィンドウ)にぶつかると、そこにアタッチされます。このとき、変数は よく似た をグローバル変数に置き換えます。ただし、削除する場合は delete (を使用しなかった他の人のコードによるものである可能性が高いです。 var ). もし var をグローバルスコープで使用すると、その変数は 真にグローバル であり、削除することはできない。

これは、javascriptの最も危険な問題の1つであり、非推奨とするか、少なくとも警告の上に警告を上げるべきだと私は考えています。その理由は、忘れがちな var で、偶然にも共通の変数名がグローバル・オブジェクトに束縛されているのです。これは、奇妙でデバッグが困難な動作を生み出します。