Var対Javascriptを残す

| | |

ECMAScript6(ES6)のリリースにより、JavaScript言語に新機能が追加されました。これらの特性の1つは、変数の宣言方法に影響を与えます。 letconstが追加されたことで、各変数宣言をいつ使用するかについて、さまざまな質問がありました。

これには記事では、JavaScript環境での定義と使用に関して、各オプションについて説明します。

Pre-ES6:Var

ES6のリリース前、変数はvarの宣言でした。

変数は、エラーなしで再宣言および更新することもできます

varの最初の問題は明らかです。変数にすでに同じ名前が付けられている場合、再宣言によってコードにバグが発生する可能性があります。何かが再度宣言され、変数名がコードベースですでに使用されていることに気づかなかった場合、意図しない結果が生じる可能性があります。これに加えて、スコープとリフティングに関して他の特殊性も発生します。

スコープ

スコープは何を教えてくれます変数を使用できます。グローバルまたはローカルスコープの変数があります。同じ変数宣言があり、グローバルでもう一方がローカルの場合はどうなりますか?

varが関数の外部で宣言されると、グローバルにグローバルに利用できるようになります。 "hello" が関数で宣言されている場合、関数でのみ使用できます-関数スコープまたはローカルスコープを使用します

同じ変数宣言があり、スコープが異なる場合、 helloWorld()を呼び出しても、関数内のvarはグローバルvarの割り当てを変更しません。 varは「hello」という名前の関数で宣言されているため、代替定義のグローバル範囲内にあるようには見えません。

ホイスト

JavaScriptで変数をホイストすると、関数と変数の宣言は、コードを実行する前にスコープの先頭に移動されます。変数は宣言されていますが初期化されていないため、変数の初期値は未定義です。

ここでは、「こんにちは」があなたの手の届くところに持ち上げられて宣言されています。したがって、基本的にコンピュータは次のようにコードを解釈します。

JavaScriptエンジンは、helloが存在することを認識しますが、次のステップまでhelloがどのように定義されているかを認識しません。

最終的に、ECMAScript標準の作成を支援した開発者varには、時間とお金がかかる可能性のある小さな問題があることに気づきました。そこで彼らは、より厳格なキーワードを作成することにしました。これにより、ES6に「休暇」と「コスト」が作成されました。

ES6:。 Let

let キーワードは、多くの点でvarキーワードと非常によく似ています。主な違いは、エラーが返される方法と各キーワードのスコープが定義されていることです。

let キーワードで宣言および初期化された変数は再割り当てできますが、再宣言することはできません

上記のコードをJavaScriptコンソールで実行すると、最後の行にエラーが返されます:

SyntaxError:識別子 ` hello`はすでに宣言されています

var とは異なり、 letを使用して変数を宣言すると同じ宣言はできません。変数名。ただし、上記の例に示すように、必要に応じて再割り当てできます。

スコープ

チャンピオンに関しては、 let var。グローバルスコープまたはローカルスコープが提供するルールに加えて、 letには追加の制約があります。コードブロックで宣言された変数は、そのコードブロックでのみ使用できます。これは、関数がその関数内に個別のブロックを持つことでさらに実行できるコードのブロックであるため、関数スコープに似ています。

このコードにはエラーがないため、 helloの2つのインスタンスは、スコープが異なるため、別々の変数として扱われます。

ホイスト

ホイストは、let宣言とvar宣言が類似しているもう1つの領域です。 「Var」を上げると、未定義として初期化されます。ただし、「leave」を初期化する前に使用しようとすると、参照エラーが発生します。

構文の観点からは、letキーワードが最良の選択であることに注意してください。これは、初期化プロセスの前に変数を再宣言または使用しようとするとエラーが生成されるためです。

ES6:Const

constキーワードには let キーワードよりも厳しいガイドライン。 const を使用すると、変数を宣言したり、再割り当てしたりすることはできません。 constに再割り当てしようとするとTypeErrorが生成されます。

とはいえ、オブジェクトまたは配列を操作する場合、オブジェクトまたは配列のプロパティが更新される可能性があります。オブジェクトまたはテーブルの基本構造が変更されない限り、いつでも更新できます。

例に示すように、タスクを新しいプロパティセットに再割り当てすると、 TypeError:定数変数への割り当てエラーが発生します。オブジェクトの一意のプロパティを更新する場合を除いて、Constを再割り当てまたは再宣言することはできません

スコープとリフト

let キーワードと同様に、 const はスコープブロックであり、吊り上げられたときに初期化されません、したがって、初期化の前に使用しようとするとエラーがスローされます。

const キーワードは、`t’ができなくなるまで使用するのが理想的です。これは、変数を転送または更新する必要がある場合です

結論

この記事では、 let var コスト。現在使用しているすべてのキーワードの中で、必要な場合を除いて var を使用しないことをお勧めします。代わりに、 letまたはconstを使用してください。

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method