ECMAScript変数

変数の宣言にはvar演算子を使用してください。

変数名はいくつかのシンプルな規則に従う必要があります。

変数の宣言

前節で説明したように、ECMAScriptの変数はvar演算子(variableの略称)と変数名で定義されます。例えば:

var test = "hi";

この例では、変数testを宣言し、その値を"hi"(文字列)に初期化しました。ECMAScriptは弱い型ため、インタプリタはtestに自動的に文字列値を作成します明確な型宣言は必要ありません

また、1つのvar文で2つ以上の変数を定義することもできます:

var test1 = "hi", test2 = "hello";

前のコードは変数test1を定義し、初期値として"hi"を設定し、変数test2を定義し、初期値として"hello"を設定しました。

ただし、同じvar文で定義された変数は同じタイプを持つ必要はありません以下のように:

var test = "hi", age = 25;

この例では、testを(再び)定義するだけでなく、ageを定義し、それを25に初期化します。testとageが異なるデータタイプである場合でも、ECMAScriptではこれのように定義することは完全に有効です。

Javaとは異なり、ECMAScriptの変数は初期化する必要はありません(それらは後で説明するようにバックグラウンドで初期化されます)ですので、以下の行も有効です:

var test;

また、Javaとは異なる点として、変数異なるタイプの値を保持できますこれは弱い型変数の利点です。例えば、変数を文字列型の値で初期化し、その後数字値に設定することができます:

var test = "hi";
alert(test);
test = 55;
alert(test);

このコードは問題なく文字列値と数字値を出力します。しかし、前述の通り、変数を使用する際には、良いコーディングの慣習は常に同じタイプの値を保持することです。

変数の命名

変数名は以下の2つのシンプルな規則に従う必要があります:

  • 最初の文字はアルファベット、アンダースコア(_)またはドル記号($)でなければなりません
  • 残りの文字はアンダースコア、ドル記号、または任意のアルファベットまたは数字文字で構成できます

以下の変数はすべて有効です:

var test;
var $test;
var $1;
var _$te$t2;

有名な変数命名規則

ただし、変数名の文法が正しいということは、それを使用するべきだという意味ではありません。変数は以下の有名な命名規則のうちの1つを守る必要があります:

Camel 标記法

最初の文字は小文字で、次の文字はすべて大文字で始まる。例えば:

var myTestValue = 0, mySecondValue = "hi";

Pascal 标記法

最初の文字は大文字で、次の文字はすべて大文字で始まる。例えば:

var MyTestValue = 0, MySecondValue = "hi";

ハンガリー型マークアップ法

Pascal 标記法で名付けられた変数の前に小文字(または小文字のシーケンス)を付けることで、その変数のタイプを示します。例えば、i は整数、s は文字列、以下のようになります。

var iMyTestValue = 0, sMySecondValue = "hi";

このトレーニングでは、例のコードをより読みやすくするために、以下の接頭辞を使用しています:

タイプ 接頭辞
配列 a aValues
ボルン b bFound
浮動小数点(数字) f fValue
関数 fn fnMethod
整数(数字) i iValue
オブジェクト o oType
正規表現 re rePattern
文字列 s sValue
変型(どんな型でもできます) v vValue

変数の宣言は必須ではありません

ECMAScript のもう一つの面白い点(多くのプログラミング言語との主要な違い)は、変数を使用する前に宣言する必要がないことです。例えば:

var sTest = "hello ";
sTest2 = sTest + "world";
alert(sTest2);

上記のコードでは、まず sTest が文字列型の値 "hello" として宣言されます。次の行では、sTest2 という変数を使って sTest と文字列 "world" を結合します。sTest2 は var オペレータで定義されていません。ここでは、既に宣言されているかのように挿入されています。

ECMAScript のインタープリタは、宣言されていない識別子に遭遇した場合、その変数名でグローバル変数を作成し、指定された値で初期化します。

これはその言語の便利な点ですが、変数をしっかりと追跡できない場合は、非常に危険です。最善の習慣は、他のプログラミング言語と同様に、常にすべての変数を宣言することです。