JavaScriptに関しては、最初のより重要な概念は変数であり、変数の作業メカニズムはJavaScriptの基本的な特徴です。実際、変数は識別子の一種です。この記事では、変数と識別子を詳細に紹介します
意味
識別子は、変数、関数、プロパティ、パラメーターの名前を付けたり、特定のループステートメントのジャンプ位置のマーカーとして使用するために使用される名前です。
//変数var識別子= 123; //プロパティ(新しいオブジェクト).Identifier = 'test'; // function and parameters関数識別子(識別子1){}; //ジャンプタグ識別子:for(var i = 0; i <5; i ++){if(i == 3){break識別子; }}日常生活では、いくつかのものが修正され、いくつかのことが変わります。たとえば、人の名前と誕生日は固定されていますが、彼の気分と年齢は時間とともに変化します。人々は変数を変えるものを呼び出します
プログラムが将来の使用のために価値を保存する必要がある場合、それは変数に割り当てられます。変数は、値を節約するためのプレースホルダーです。変数名を介して値への参照を取得できます。
命名規則
「レキシコン構造」という記事では、JavaScriptがケースに敏感な言語であることを紹介します。他のプログラミング言語と同様に、JavaScriptはそれ自体のいくつかの識別子を保持し、予約された単語を通常の識別子として使用することはできません。
[注]予約済みの単語には、キーワード、将来の予約単語、空のリテラル、ブールリテラルが含まれます
remervedword :: keyword futureriversiveword nullliTeral booleanliteral
JavaScriptの識別子名には、文字、数字、ドル記号、アンダースコアが含まれていることが許可されています(ただし、最初の文字は数字であることは許可されていません)
//エラーデモンストレーション6num //数値%合計は最初に使用できません
JavaScriptを使用すると、識別子のユニコード文字のセット全体に文字と数字(中国語を含む)が許可されます。したがって、プログラマーは英語以外の言語または数学的記号を使用して識別子を書き込むこともできます
var test text = 'test';
[注]携帯性と執筆の容易さについては、通常、拡張ASCIIまたはUnicode文字を使用しません
通常、キャメル形式は識別子ネーミングの優先形式であり、最初の文字は小文字であり、残りの各単語の最初の文字は大文字です。
var mymoodtoday = 'happy';
さまざまなデータ型について、JavaScriptには従来の識別子命名ルールがあります
タイププレフィックス例アレイ(配列)AITEMS BOOLEAN(BOOLEAN)B BISCOMPLETE FLOATING POINT NUMBER(FLUAT)FPRICE FUNCTION(function)fn Handler Integer(integer)iiitemcount Object(オブジェクト)iiitemcountオブジェクト(オブジェクト)odiv1正規表現(regexp)re reemailcheck strin
変数宣言
声明
JavaScriptでは、変数を使用する前に宣言(宣言)する必要があります。変数は、キーワードvar(変数の略語)を使用して宣言されます。
var i; var sum;
VARキーワードを介して複数の変数を宣言することもできます
var i、sum;
割り当て
値を変数に保存する動作は、割り当てと呼ばれます。変数が割り当てられた後、変数にはこの値が含まれていると言います
変数を初めて割り当てるプロセスは、初期化と呼ばれます
変数宣言とともに変数の最初の割り当てを書き込むことができます
var message = 'hello'; var i = 0、j = 0、k = 0;
変数がVAR宣言の声明で指定されていない場合、変数が宣言されていても、その初期値は値を保存する前に定義されていません
VARステートメントは、ループやfor-inループにも使用できます。これは、ループ構文で使用されるループ変数をより簡潔に宣言できます。
for(var i = 0; i <10; i ++)console.log(i);
変数は宣言されたときに値を割り当てることができますが、 +=、 - =、などの他の操作はありません。
var a = 2; //正しいvar a+= 2; //間違っているvar a = 2 ++; //は間違っています、++は変数にのみ使用でき、定数ではなく使用できます
声明を繰り返します
VARステートメントを使用して変数を繰り返し宣言することは合法で無害です。宣言が割り当て操作で繰り返される場合、値を再割り当てすることに相当します。
失われた声明
宣言されていない変数の値を読み取ろうとすると、JavaScriptはエラーを報告します
JavaScriptを使用すると、宣言を省略します。つまり、以前の宣言なしに変数に値を直接割り当て、割り当て操作は変数を自動的に宣言します。
ただし、ECMAScript5 Strictモードでは、宣言されていない変数に値を割り当てると、エラーが発生します。
<Script> 'Strict'を使用; a = 5; console.log(a); </script>
可変特性
JavaScript変数は弱いタイプ(ルーズタイプとも呼ばれます)であり、いわゆるルーズタイプは、あらゆるタイプのデータを保存するために使用されます。
プログラミング言語分類:動的な型言語と静的型言語。動的型言語とは、操作中にデータ型チェックのみを行う言語を指します。つまり、動的な型言語でプログラミングする場合、変数のデータ型を指定する必要はありません。言語は、最初に変数に値を割り当てるときにデータ型を内部的に記録します。 JavaScriptは、動的に型付けされた言語の代表です。
JavaScriptでは、値を変更しながら値のタイプを変更できます。
var message = 'hi'; message = 100; //有効ですが、推奨されません
ルーズタイプの変数の特性を要約する2つのポイントがあります。1つは、宣言時に変数のデータ型を指定する必要がないということです。もう1つは、値を割り当てるときにデータ型を変更できることです。
可変スコープ
実行コンテキストとも呼ばれる変数の範囲は、プログラムソースコードでこの変数を定義する領域です。
スコープは、グローバルな範囲と関数範囲に分けられます(ローカルスコープとも呼ばれます)
グローバルな範囲は、最も周辺の実行環境です。 Webブラウザでは、グローバル実行環境はウィンドウオブジェクトと見なされます。すべてのグローバル変数と関数は、ウィンドウオブジェクトのプロパティと方法として作成されます。グローバル変数にはグローバルスコープがあり、JavaScriptコードのどこでも定義されています。たとえば、アプリケーションが終了するまで、グローバルスコープは破壊されません。たとえば、Webページやブラウザを閉じることはありません。
関数内で宣言された変数は、関数本文でのみ定義されます。それらはローカル変数であり、その範囲はローカルです。関数パラメーターもローカル変数であり、関数本文でのみ定義されます。関数範囲内のすべてのコードが実行され、スコープが破壊され、その中に保存されているすべての変数と関数定義も破壊されます。
function test(){var message = 'hi';} test(); alert(message); // errorVAR演算子が省略されている場合、グローバル変数が作成されます
function test(){message = 'hi';} test(); alert(message); // 'hi'VARオペレーターを省略すると、グローバル変数を定義できますが、推奨されません。ローカルスコープで定義されているグローバル変数は維持が困難であり、VAR演算子が意図的に無視されている場合、対応する変数がすぐに定義されないため、不必要な混乱も引き起こします。厳密なモードで宣言されていない変数に値を割り当てると、参照エラーエラーがスローされます
関数本体では、ローカル変数の優先度は、同じ名前のグローバル変数の優先度よりも高くなっています。関数で宣言されたローカル変数または関数パラメーターの変数変数とグローバル変数が複製されている場合、グローバル変数はローカル変数によってカバーされます。
var scope = 'global'; function checkscope(){var scope = 'local'; return scope;}; checkscope(); // 'local'ステートメントプロモーション(巻き上げ)
ブロックレベルの範囲
ブロックレベルの範囲とは、Curly Bracesの各コードには独自のスコープがあり、JavaScriptにはブロックレベルのスコープがないことを意味します。 JavaScriptには関数範囲のみがあります:変数は、それらを宣言する関数本文で定義され、この関数本文にネストされている関数本文が定義されます。
これは、変数が宣言される前にさらに利用できることを意味します。 JavaScriptのこの機能は、非公式にHoistingと呼ばれます。 JavaScript関数で宣言されたすべての変数(関係する割り当てなし)は、関数本文の上部に進められます。
[注]実際には、可変プロモーションに加えて、機能も促進され、関数セクションの詳細な紹介があります
var scope = 'global'; function f(){console.log(scope); // undefined var scope = 'local'; console.log(scope); // 'local'} //変数宣言が宣伝された後、それは次のコードと同等ですvar scope = 'global'; function f(){var scope; console.log(scope); // undefined scope = 'local'; console.log(scope); // 'local'}JavaScriptにはブロックレベルの範囲はないため、一部のプログラマーは、関数本体の上部に意図的に変数宣言を配置しました。このソースコードは、実際の変数スコープを明確に反映しています。
属性変数
JavaScriptグローバル変数を宣言するとき、それは実際にグローバルオブジェクトウィンドウのプロパティを定義します
変数がVARを使用して宣言された場合、作成された変数は構成できません。つまり、変数は削除演算子を介して削除できません。
var truevar = 1; console.log(truevar、window.truevar); // 1 1delete truevar; // falseconsole.log(truevar、window.truevar); // 1 1
Strict Modeを使用して、宣言されていない変数に値を割り当てない場合、JavaScriptはグローバル変数を自動的に作成します。この方法で作成された変数は、グローバルオブジェクトの通常の構成可能なプロパティであり、それらを削除できます
window.fakevar1 = 10; console.log(fakevar1、window.fakevar1); // 10 10 this.fakevar2 = 20; console.log(fakevar2、window.fakevar2); // 20 20fakevar = 30; console.log(fakevar、window.fakevar); // 30 30delete Window.fakevar1; // truedelete this.fakevar2; // truedelete fakevar; // trueconsole.log(fakevar1、window.fakevar1); //レポートエラーconsole.log(fakevar2、window.fakevar2); //エラーConsole.log(fakevar、window.fakevar)を報告します。 //エラーを報告します
JavaScriptグローバル変数は、ECMAScriptで必須のグローバルオブジェクトのプロパティです。ローカル変数は、関数呼び出しに関連するオブジェクトの属性として扱われます。 ecmascript3はコールオブジェクトと呼ばれ、ecmascript5は宣言環境レコードと呼ばれます。 JavaScriptでは、このキーワードを使用してグローバルオブジェクトを参照できますが、ローカル変数に保存されているオブジェクトを参照する方法はありません。ローカル変数オブジェクトを保存するこのユニークなプロパティは、私たちには見えない内部実装です
上記のJavaScriptの基本的な文法 - 変数と識別子の包括的な理解は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。