JavaScript言語仕様JavaScriptは、厳密な型チェックや豊富な構文、制御文を持たない単純な構造のオブジェクト指向言語です。そのため、JavaScriptは Javaの置き換えのような用途に使用するのではなく、Javaアプレットの機能の一部を補うような用途に使用するための言語といえます。
Javaは高速にプログラムを実行したり、厳密な型チェックやセキュリティ保全を行いつつ、ネットワーク上で使用可能な設計された高機能な言語です。Javaでのプログラミングはすでに備わっている「クラス」を組み合わせたり、「差分」をプログラムしたりして行われます。そのため、プログラミングに際して「クラス」についての広範囲な知識や厳密な文法などの知識が必要とされます。
JavaScriptはこれとは対照的に、シンプルで小さな「クラス」階層として定義されたオブジェクト群を、動的に使用可能にする言語です。やさしい構文、提供される数々の機能やオブジェクト、必要最小限の定義でプログラムが作成できるなどのことから、幅広いユーザが手軽に使用できるプログラミング言語となっています。
この章では、JavaScriptの基本的な言語仕様について解説します。
言語仕様解説 (このページのコンテンツ)
JavaScriptの初期値として持っている処理系側で、既に使用されている「名前」のことを指し、スクリプトで利用する変数名や関数名として使うことができないキーワードです。JavaScriptの制御文のキーワードとして使われているので、同じ名前の変数名に割り当てることができません。JavaScript予約語一覧abstract、boolean、break、byte、case、catch、char、class、const、 continue、default、do、double、else、extends、false、final、 finally、float、for、function、goto、if、implements、import、in、 instanceof、int、interface、long、native、new、null、package、 private、protected、public、return、short、static、super、switch、 synchronized、this、throw、throws、transient、true、try、var、void、 while、with、
「;」を用いています。1行で複数の実行文のサンプル a = 1; b = 2; c = a + b;
JavaScriptには様々な制御文が用意されています。例えば、a が 10かどうかを判定し、もし真(条件が成り立つ)なら、a に1を加え、偽(条件が成り立たない)の場合は、a から1を引く処理を考えてみると、ブロックという概念が必要になります。
if (a == 10) {
a = a + 1;
}
else {
a = a - 1;
}
{ と } で囲まれた部分は、1つの実行文の「かたまり」として扱われます。これが、1つのブロックです。上記のような制御文や関数の実行文なども、こうしたブロックを用いて記述します。JavaScriptでは、必ずというくらい利用されるオブジェクトですが、オブジェクトとは日本語に直訳すると「もの」という意味があります。JavaScriptでは多くのオブジェクトが定義されています。
JavaScriptでは、ウィンドウ、ドキュメント、フォーム、文字列など、ぺ一ジの表示に関わるさまざまなモノ(Object)を制御します。これらのモノはすべて「オブジェクト」と呼ばれます。それぞれのオブジェクトには、状態を変更するための「プロパティ」や、命令を実行するための「メソッド」が多数用意されています。JavaScriptには、オブジェクトごとにさまざまなメソッドがあります。たとえば、文字列オブジェクトには文字列の色やサイズを変更したり、文字列の検索や分割を行ったりするメソッドがあります。メソッドを使用する際には、必要に応じてカッコ内に引数を指定します。document (ドキュメント) オブジェクトにはドキュメントの背景色や文字色、ドキュメントの URI、タイトル、ドメインなどの属牲があります。これらをスクリプトを使って参照または設定することによって、ページの背景色を変えたり、別のページに移動させるなどの動作を実現できます。 JavaScriptで扱うことができるデータ型JavaScriptは、他のプログラミング言語と異なり、厳密な方チェックをしないという特異なデータ型を持つ言語です。ここでは、JavaScriptで扱うことのできるデータ型を説明します。JavaScriptでは、大きく分けて次に示す3つのデータ型と null が扱えます。a = 12; や b = "value"; などのような使われ方をした場合、12 や value は定数と呼ばれます。定数には、整数型定数と呼ばれる形式があります。
+、- の符号で始まる数は 10進数の整数として扱われます。
1つの例として 123、+5、-24
1.[符号(+/-)][数値].<数値> 例:1.414、.12、-0.5 2.[符号(+/-)][数値].[数値]e.<符号(+/-)数値> 例:0.27e+1、15.2e+1
0.27e-2 は 0.0027 を示し、15.2e+1 は 152.0 を示します。JavaScriptでは、8進数および16進数を扱うことができます。
JavaScriptでは、8進数を10進数と区別するために、値の前に 0を付けて表現します。例:8進数 05 021 10進数 5 17
JavaScriptでは、値の先頭に 0x を付け、16進数では次のように記述します。例: 0x1F1A
true」を、成り立たない時には 「偽:false」を返します。true、false という名前で以下のように代入します。a = true; b = false;
while (true) {
:
if ( a == x ) break;
:
}
while文の評価で常に値が「真」に返るようにして、ブロックの途中で条件式( a は x と等しいか?)を満たした場合にのみ、このブロックを抜けるような動作をします。
a = "hello JavaScript";
JavaScriptでは、以下のような形で表記します。
\b --- バックスペース \f --- form のフィールド \n --- 改行 \r --- キャリッジ・リターン \t --- タブ
JavaScriptで扱える色名は、全136色、138種の色名があります。中には、非常にロマンチックな名前もあます。実際の色の表示にはユーザ環境に依存するものが圧倒的に多く、必ずしも望む色に表示するとは限りません。JavaScriptで扱う色名 カラーパレットa = 20;
a = 20; a = a + 1;
例: Date → myDate、_Datevar 変数名[ = 初期値]
var は、定数などの特定の値に名前をつけて参照したい場合などにも、便利に使用することができます。JavaScriptでは、データの型に関して厳密なチェックは行われず、必要に応じて変化し適用されます。ban に数値を代入したとします。var ban = 123;
ban = "数値は" + 123;
JavaScriptは明確な配列データ型をもちませんが、配列およびオブジェクトのプロパティの格納形式を利用することで、簡単に配列を作ることができます。
function MakeArray(n) {
this.length = n;
for ( var i =1; i <= n; i ++ ) {
this[i] = 0
return this
}
}
length (配列インデックスが 0 の配列要素の中にこれが入る) として持たせ、それに続いて配列を作成し、それらの値を 0 に初期化します。newで配列名を添えて呼びます。myArray = new MakeArray(10);
myArrayと呼ばれた配列を作り、その中身を 0に初期化します。この配列の要素は、次のように通常の変数と同じように使用することが可能です。myArray[1] = 1 myArray[2] = 3.14 myArray[3] = "hello"