JavaScriptのvar let constの違いは何ですか?

JavaScriptのvar let constの違いは何ですか?

1. 繰り返し宣言

var は繰り返し宣言をサポートしますが、let と const は繰り返し宣言をサポートしません。

1.1 変数

var a = 1;
var a = 2;
コンソールにログ出力します。

出力:

2

1.2 しましょう

b = 3 とします。
b = 4 とします。
コンソールログ(b);

出力:

キャッチされない構文エラー: 識別子 'b' はすでに宣言されています

1.3 定数

定数 c = 5;
定数 c = 6;
コンソールログ(c);

出力:

キャッチされない構文エラー: 識別子 'c' はすでに宣言されています

2. 可変プロモーション

var は変数の昇格をサポートしますが、宣言のみを昇格し、値は昇格しません。 let と const は変数の昇格をサポートしていません。

2.1 変数

2 = 2;
コンソールにログ出力します。
var a = 1;

出力:

2

2.2 しましょう

2 = 2;
コンソールにログ出力します。
a = 1 とします。

出力:

捕捉されない参照エラー: index.html:28 で初期化する前に 'a' にアクセスできません

2.3 定数

2 = 2;
コンソールにログ出力します。
定数a = 1;

出力:

捕捉されない参照エラー: index.html:28 で初期化する前に 'a' にアクセスできません

3. 一時的なデッドゾーン

var には一時的なデッドゾーンはありませんが、let と const には一時的なデッドゾーンがあります。
let と const がスコープ内に存在する限り、それらが宣言する変数または定数は自動的にこの領域に「バインド」され、外部スコープの影響を受けなくなります。

3.1 変数

var a = 1;
関数fun() {
    コンソールにログ出力します。
    var a = 2;
}
楽しい();

出力:

未定義

3.2 しましょう

a = 1 とします。
関数fun() {
    コンソールにログ出力します。
    a = 2 とします。
}
楽しい();

出力:

捕捉されない参照エラー: 初期化前に 'a' にアクセスできません

3.3 同意

a = 1 とします。
関数fun() {
    コンソールにログ出力します。
    定数a = 2;
}
楽しい();

出力:

捕捉されない参照エラー: 初期化前に 'a' にアクセスできません

4. ウィンドウオブジェクトのプロパティとメソッド

グローバル スコープでは、var で宣言された変数と function で宣言された関数は、自動的に window オブジェクトのプロパティとメソッドになります。

var a = 1;
関数 add() { };
コンソールにログ出力します。
console.log(window.add === 追加);

出力:

真実
真実

5. ブロックスコープ

var にはブロックレベルのスコープはありませんが、let と const にはブロックレベルのスコープがあります。
varを使用して for ループ内の変数 i を定義します。

(var i = 0; i < 3; i++) の場合 {
    // コンソールログ(i);
}
コンソールにログ出力します。

出力:

3

letを使用して for ループ内の変数 i を定義します。

(i = 0; i < 3; i++ とします) {
    // コンソールログ(i);
}
コンソールにログ出力します。

出力:

キャッチされない参照エラー: i が定義されていません

JavaScript における var、let、const の使い方の違いについての記事はこれで終わりです。JavaScript の var の使い方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript における var、let、const の違いの詳細な説明
  • JavaScript es6 における var、let、const の違いの詳細な説明
  • JavaScript の var と ES6 仕様の let と const の違いと使い方を詳しく解説
  • JavaScript の let、var、const キーワードの違いを理解する
  • JavaScript ES6 構文における let、const、var の違い

<<:  Dockerコマンドの自動補完の実装

>>:  HTML テーブル マークアップ チュートリアル (14): テーブル ヘッダー

推薦する

Docker で Springboot プロジェクトを実行する実装

導入: springboot プロジェクトを実行する Docker の構成は実は非常にシンプルで、L...

Docker で Ubuntu に Python3 と Pip をインストールする際の問題

文章1) Ubuntuイメージをダウンロードする docker プル Ubuntu 2) 画像を見る...

テーブルを使用する場合と CSS を使用する場合 (経験の共有)

TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...

MySQLのあいまいクエリインデックスの失敗の問題を解決するいくつかの方法

% ワイルドカードを使用すると、インデックス失敗の問題が発生することがよくあります。ここでは、lik...

docker インストール後に hello-world を実行する問題を解決する

yumを使用してcentos7.3にDocker V1.13.1をインストールしましたしかし、doc...

Linux に ASPNET.Core3.0 ランタイムをインストールするためのサンプル コード

# 以下の例は x64 ビット ランタイム v3.0.0 用です mkdir /runtimes ...

虫眼鏡コンポーネントのネイティブ js 実装

この記事の例では、参考までに虫眼鏡コンポーネントを開発するためのjsの具体的なコードを共有しています...

VMware での Ubuntu Docker のインストール (コンテナ構築)

1. マインドマップ 2. コンテナの構築方法2.1 実験環境の準備(1)環境選択管理ツール: D...

node.js の require メソッドの読み込みルールの詳細な説明

require メソッドの読み込みルールキャッシュからの読み込みを優先するコアモジュールパス形式のモ...

HTML面接の質問の要約

1. doctypeの役割、厳密モードと混合モードの違い、そしてその重要性1. 構文形式: <...

iframe なしの div ネスト HTML

最近、宿題をしているときに、iframe を使用せずにページをネストする必要があったため、jquer...

HTML におけるベースタグの使用に関する詳細な説明

requireJS には、baseURL というプロパティがあります。baseURL を設定すること...

HTML 5 プレビュー

<br />オリジナル: http://www.alistapart.com/artic...

HTMLはBaidu百科事典のナビゲーションドロップダウンメニュー機能を模倣します

HTML は、Baidu 百科事典のナビゲーション ドロップダウン メニュー機能を模倣します。具体的...

HTML+CSS で div タグの右上隅に削除アイコンを追加するサンプルコード

1. 要件の説明Divタグの右上隅に削除アイコンを表示します2. 実装html、CSS 3. 参照コ...