let 宣言

最終更新:2026-10-13

let 宣言

カテゴリ変数宣言

⚙️ 引数

变量名
初始值

元の値を変更するか:いいえ(新しい値を返す)

💡 ヒント
⚠️ 警告

🌐 ブラウザ対応

ブラウザ ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
let ✓ v49 ✓ v12 ✓ v44 ✓ v10 ✓ v36
すべてのモダンブラウザで対応
さらに多くのケースは近日公開予定です。

📚 関連チュートリアル

❓ よくある質問

Qlet と var の違いは何ですか?
A大きく分けて3点です。①スコープ(let はブロックスコープ、var は関数スコープで、グローバルオブジェクトに漏れることもあります)②再宣言(let は禁止、var は許可)③巻き上げ(let は一時的デッドゾーンに留まりエラーを投げますが、var は undefined を返します)です。
Qlet 宣言より前に変数を使うと、なぜエラーになるのですか?
Aスコープに入ってから let 宣言が実行されるまでの区間を一時的デッドゾーン(TDZ)と呼びます。変数は既に登録されていますが初期化されていないため、そこに触れると ReferenceError が投げられます。これは var が許していた「黙って undefined を返す」という見えにくいバグを防ぐための、意図的な設計です。
Qループ内では let が毎回異なる値になるのはなぜですか?
Alet で宣言したループ変数は、JavaScript がイテレーションごとに新しいコピーを作り、直前の値を引き継ぎます。そのため各クロージャは自分自身のイテレーションの値を捕まえます。var の場合は共有バインディングが1つだけなので、後から実行されるコールバックはすべて最後の値を見てしまいます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%