|
||||
|
|
3章 JavaScriptで使用する変数
|
|
|
変数とは、、
プログラムを初めて作成する方にはあまり馴染みがないかもしれませんが。今使用しているデータを後で使用したい!!と言うケースは多々あることだと思います。これは当然のことですがこれにはデータを保存しておく箱が必要です。このデータを保存する箱の事をプログラムの世界では [ 変数 ] と呼びます。JavaScriptでもこの変数を使用してデータを保持します。
JavaScriptの変数
C言語やJavaには文字型や整数型、浮動小数点型など、一言で変数といっても色々な種類があり、それぞれ別の型の変数に代入しなければいけないと言った型チェックがあります。しかし JavaScriptでは変数の型は一つしかなく、この一つで文字列、数値といったあらゆるデータを格納する事が可能です。
さらに大抵のプログラム言語では、変数を使用する前に変数を宣言する必要がありますが、JavaScriptでは代入に限って変数を宣言しないでも行うことが出来ます。
// 変数名 ] a ] の変数を宣言します。 var a ; // 変数名 [ b ] の変数を宣言無しで使用しています( エラーにならない ) b = "Hello World" ; // 宣言していない変数を参照している( エラーとなる ) document.write(c) ; 変数名の決まり
変数名は、英字 [ a〜z、A〜Z ] またはアンダースコア [ _ ] で始まり、英字、アンダースコアまたは数字 [ 0〜9 ] が続く単語が指定可能です。 文字数の指定はありませんが、大文字、小文字は区別して扱われます。
※それ以外にもステートメントで使用する if や while などは予約語と呼ばれ、変数名として使うことは出来ません。
// 変数名として有効 abc // 変数名として有効 a123 // 変数名として有効 _abc // 変数名として無効 ( 数値で始まっている ) 123 変数に格納できる値
JavaScriptの変数に格納できる値は、数値、文字列、論理値、null値になります。 数値と文字列については説明する必要がないと思います。そのほかの論理値、null値は以下のようなものです。
論理値
これは真偽値とも呼ばれ、真(True)、偽(False) のどちらかを表します。 Perlでは 0は偽、1は真といった具合に変換して評価する事も可能ですが、JavaScriptではこれらを論理値として評価出来ません。null
この値は変数に何も値が格納されていない状態を表します。 Perlで言う未定義を指します。変数を使ってみる
後述しますが、関数内で宣言した変数はその関数内だけのローカルな変数として扱われます。 関数以外で宣言したグローバルな変数と名称が重複してしまった場合はローカルな変数が優先して使用されます。
// 変数 [ a ] を宣言しています。 var a ; // 変数 [ b ] を宣言し同時に文字列"Hello"を代入しています。 var b = "Hello" ; // 変数 [ c ] を宣言し同時に数値10を代入しています。 var c = 10 ; // さっき宣言した変数 [ a ] に文字列 [ World ] を代入しています。 a = "World" ; // 変数に格納されている値10を出力します。 document.write(c); // aとbを連結して出力します。 document.write(a + b); // カンマで区切ってまとめて宣言する事も出来ます。 var a,b,c; 配列
配列に関する詳細については [ 5章 ] を見てください、ここでの説明はざっと流す程度です。
配列とは複数の変数の集合を表わします。C言語やPerlでは単に指定された量の領域を確保するといった形式でしたが、JavaScriptでは Arrayオブジェクトで配列を保持・操作します。 配列の宣言、参照のサンプル
// 配列の宣言 var week = new Array(7) ; '0〜6の7要素を持つ配列が作成されます。 // 要素への代入 week[0] = "sun" ; week[1] = "mon" ; week[2] = "tue" ; week[3] = "wed" ; week[4] = "thu" ; week[5] = "fri" ; week[6] = "sat" ; // 要素の参照 document.write(week[3]) ; 'sunと出力 document.write(week[6]) ; 'satと出力 [ 上記を図解すると・・・ ]
お気づきだと思いますが、配列の要素は 0から始まります。 Arrayオブジェクトのインスタンス生成時に 7とした場合は 0〜6 で 7個の要素をもつ配列を作成すると言う意味になります。 変数のスコープ
変数のスコープとは、その変数の有効範囲 ( 変数を参照できる範囲 )がどこまでであるか、という意味になります。 つまり変数を参照できる範囲がスコープ範囲、変数を参照できない範囲をスコープ範囲外と呼びます。
このスコープの違いで、全ての場所から参照できる変数を [ グローバル変数 ] と呼び、関数内だけなど特定の場所からしか参照できない変数を [ ローカル変数 ] と呼んだりもします。 NetscapeNavigatorでは、、
現在古いバージョンの NetScapeNavigatorの利用者はだいぶ減っていますが、NetscapeNavigatorでは varを使い宣言した場合その変数は宣言された場所に限らず全てグローバル変数になります。逆に言えば NetscapeNavigatorでは関数の中で varを付けないで宣言した変数以外全てグローバル変数となります。InternetExploreでは、、
InternetExploreでは関数の中で宣言した変数は全てその関数のみのローカル変数となります。関数の外で宣言した変数は全てグローバルな変数となります。[ InternetExploreでの動作例 ]
// グローバル変数aの宣言、代入 var a = 10 ; // 関数の呼び出し func_A() ; // 関数の呼び出し func_B() ; // グローバル変数aの表示→ ( 10 ) document.write(a) ; // 変数が参照できないのでエラーになる document.write(b) ; function func_A() { // ローカル変数bへの代入 var b = 10; // ローカル変数aへの代入 var a = 100; // ローカル変数の方が優先されるので → ( 100 ) document.write(a) ; } function func_B() { // グローバル変数aの表示 → ( 10 ) document.write(a) ; } |
|||||||||||||||||||||||||||||