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): テーブル ヘッダー

推薦する

Apache Spark 2.0ジョブは完了するまでに長い時間がかかります

現象Apache Spark 2.x を使用すると、Spark ジョブがすべて完了しているにもかかわ...

Docker+Jenkinsを使用して自動的にビルドおよびデプロイする

この記事では、Docker+Jenkins の自動ビルドデプロイメントを紹介し、皆さんと共有します。...

Dockerは異常なコンテナ操作を排除する

この初心者は、Docker を学び始めたばかりの頃にこのような問題に遭遇しました。記録しておきます。...

史上最もクリエイティブな404ページのデザインは、ウェブサイトのユーザーエクスペリエンスを効果的に向上させます

ウェブを閲覧しているときに 404 ページに遭遇することはあまりないので、見落としがちです。しかし、...

Node.js における path.join() の利点の分析

文字列連結ではなく path.join() メソッドを使用する必要があるのはなぜか疑問に思うかもしれ...

jsはタイトルと説明のキーワードを検出し、見つかった場合は置換するか他のページにジャンプします。

キーワード 一般タイトルには、クラック、キー、シリアル番号、キージェネレータなどの単語を含めることは...

Vueプロジェクトを大画面に適応させる方法の例

レムの簡単な分析まず、remはCSS単位です。pxの固定ピクセル単位と比較すると、remはより柔軟性...

ローカルでビルドした Docker イメージを Dockerhub に公開する方法

今日は、ローカルの Docker プロジェクト イメージを dockerhub に公開する方法を紹介...

Linux の vsftpd サービス構成の簡単な分析 (匿名、ユーザー、仮想ユーザー)

vsftpd の概要vsftpd は「very secure FTP daemon」の略称で、セキ...

Webフロントエンド開発におけるエラーを見つけるための基本的な考え方

WEB開発は主に2つのインタラクション(B/Sデータ)から構成されますブラウザ: 1html、css...

Linux での Makefile の書き方と使い方の詳細な説明

目次メイクファイルMakefile の命名とルールMakefile の仕組みMakefile変数Ma...

JS を使用してバイナリ ツリー トラバーサル アルゴリズムのサンプル コードを実装する

目次序文1. バイナリツリー1.1. 二分木の走査1.2. jsを使用してバイナリツリーを表現する1...

JavaScriptは双方向リンクリストプロセス分析を実装します

目次1. 二重連結リストとは何か2. 双方向リンクリストのカプセル化3. 双方向リンクリストの一般的...

HTML入力ファイルコントロールはアップロードされるファイルの種類を制限します

入力ファイルの HTML コントロールを Web ページに追加します。 <input id=&...