Coffeescript-variables
CoffeeScript-変数
変数は名前付きコンテナに他なりません。 これらのコンテナにデータを配置し、コンテナの名前を使用してデータを参照できます。
CoffeeScript変数
JavaScriptでは、変数を使用する前に、変数を宣言して初期化する(値を割り当てる)必要があります。 JavaScriptとは異なり、CoffeeScriptで変数を作成するときに、 var キーワードを使用して変数を宣言する必要はありません。 以下に示すように、リテラルに値を割り当てるだけで変数を作成します。
name = variable name
例
次のCoffeeScriptコードでは、文字列と数値データ型の2つの変数 name と age をそれぞれ定義しています。 variable_example.coffee という名前のファイルに保存します。
name = "Javed"
age = 25
コードのコンパイル
コマンドプロンプトで次のコマンドを実行して、上記のCoffeeScriptコードをコンパイルします。
c:\> compile -c variable_example.coffee
コンパイル時に、 variable_example.js という名前のJavaScriptファイルが生成され、次のコンテンツが含まれます。 ここで、コンパイラーが私たちに代わって var キーワードを使用して変数(年齢と名前)を宣言したことを確認できます。
//Generated by CoffeeScript 1.10.0
(function() {
var age, name;
name = "Javed";
age = 25;
}).call(this);
可変スコープ
変数の範囲は、それが定義されているプログラムの領域です。 JavaScript変数とCoffeeScript変数のスコープは2つだけです。
- グローバル変数-グローバル変数にはグローバルスコープがあり、JavaScriptコードのどこでも使用できます。
- ローカル変数-ローカル変数は、定義されている関数内でのみ表示されます。 関数パラメーターは、常にその関数に対してローカルです。
JavaScriptの変数に関する問題
JavaScriptでは、 var キーワードを使用せずに変数を定義するたびに、グローバルスコープで作成されます。 これは多くの問題を引き起こします。 次の例を考慮してください-
<script type = "text/javascript">
var i = 10;
document.write("The value of global variable i is "+ i);
document.write("<br>");
test();
function test() {
i = 20;
document.write("The value of local variable i is "+i);
document.write("<br>");
}
document.write("The value of global variable i is "+i);
</script>
実行すると、上記のJavaScriptは次の出力を提供します-
The value of global variable i is 10
The value of local variable i is 20
The value of global variable i is 20
上記の例では、グローバルスペースに i という変数を作成し、値10を割り当てました。 そして、関数内で、同じ名前のローカル変数を作成しようとすると、i = 20;として宣言しました。 varキーワードなし。 var キーワードが欠落しているため、グローバル変数 i の値は20に再割り当てされます。
このため、 var キーワードを使用して変数を宣言することをお勧めします。
CoffeeScriptの可変スコープ
CoffeeScriptファイルをコンパイルするたびに、CoffeeScriptコンパイラーは匿名関数を作成し、その関数内で、CoffeeScriptコードを1行ずつJavaScriptにトランスコンパイルします。 (必要に応じて、コンパイルコマンドの -b または*-bare オプションを使用して最上位関数ラッパーを削除できます)作成するすべての変数は、匿名関数内で *var キーワードを使用して宣言されるため、 、デフォルトでは、すべての変数はCoffeeScriptでローカルです。
(function() {
var age, name;
name = "javed";
age = 20;
}).call(this);
とにかく、必要に応じて、グローバル名前空間で変数を宣言できます。 以下に示すように明示的に行うことができます。
obj = this
obj.age = 30
CoffeeScript変数名(リテラル)
CoffeeScriptで変数に名前を付けるときは、次のルールに留意してください。
- CoffeeScriptの予約キーワードを変数名として使用しないでください。 これらのキーワードについては、次のセクションで説明します。 たとえば、ブレークまたはブール変数名は無効です。
- CoffeeScriptの変数名は数字(0-9)で始まってはなりません。 文字またはアンダースコア文字で始まる必要があります。 たとえば、123testは無効な変数名ですが、_123testは有効な変数名です。
- CoffeeScriptの変数名では大文字と小文字が区別されます。 たとえば、 Name と name は2つの異なる変数です。