var 宣言
最終更新:2026-10-13
var 宣言
| カテゴリ | 変数宣言 |
|---|
⚙️ 引数
| 变量名 | |
|---|---|
| 初始值 |
元の値を変更するか:いいえ(新しい値を返す)
⚠️ 警告
💡 ヒント
🌐 ブラウザ対応
| ブラウザ | |||||
|---|---|---|---|---|---|
| var | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v1 |
| すべてのモダンブラウザで対応 | |||||
🏷️ 関連する文
💡 関連するケース
さらに多くのケースは近日公開予定です。
📚 関連チュートリアル
❓ よくある質問
Qvar の変数巻き上げでは、具体的に何が巻き上げられるのですか?
A巻き上げられるのは宣言だけで、代入はされません。スコープが実行されると var 宣言の変数は undefined として登録されるため、代入文より前にアクセスしてもエラーにならず、代わりに undefined を返します。実際の値が書き込まれるのは、実行がその行に到達したときです。
Qループ内で var を使うと、なぜイベントハンドラが壊れてしまうのですか?
Aループ全体で1つの var バインディングを共有するため、すべてのコールバックが同じ変数を捕まえます。コールバックが実行されるときにはループはすでに終了しており、どのコールバックも最後の値だけを読んでしまいます。let に変えて各イテレーションに独自のコピーを持たせれば解決します。これはクロージャの古典的な落とし穴です。
Q新しいプロジェクトでも、まだ var を使うべきですか?
Aほぼ使いません。let と const を使えばブロックスコープ、再宣言の禁止、一時的デッドゾーンによる保護が得られ、var 時代に最も多かったバグを防げます。ビルドツールを通さない非常に古いコードを保守するときだけ var を残すのがおすすめです。