ECMAscriptの特徴と学習上の注意

Cを学習済みの人のために、Cとの違いに注目しながら ECMAscriptの概要と注意を述べます。

インタプリタ

Cはコンパイラでした。 ECMAscriptはインタプリタです。

速度の点では コンパイラの方が速く、インタプリタは遅いと習ったかもしれません。 確かにそのとおりですが、どの程度の差があるのか 考えたり、実際に測定したことがありますか？ どれだけの速度が要求されるのかは 利用する場面によって異なります。

インタプリタを利用する上で一番気をつけなければならないのは コンパイラの場合とは デバッグの方法が異なることです。 動作のしかたがコンパイラとインタプリタでまったく違います。 コンパイラと同じに考えていると、 プログラムの誤りが発見できないかもしれません。

オブジェクト指向

ECMAscriptはオブジェクト指向言語です。

ところが、クラスはありません。 オブジェクトはあります。

Javaなどを学習した人にとっては、ちょっと変に感じるかもしれません。

いつ、どこで実行されるのか

Cのように端末内で実行されるものは分かり易い。

ブラウザ上で実行される場合を考えると、 いつ動作するのでしょうか？

入力はどこから

ブラウザ上で実行される場合は どこかのオブジェクトからデータを得ることが多い。

出力はどこへ

ブラウザ上で実行される場合は どこかのオブジェクトの属性を修正したり、 オブジェクトを作成したりすることになります。

rhinoについて

rhinoはJavaで記述されたECMAscript処理系です。 しばらくの間はrhinoを用いてECMAscriptの基本的な部分を学習します。

会話型で使うことができます。

$ rhinoRhino 1.7 release 3 2012 02 16js>

rhinoの命令

rhino独自の命令には次の３つがあります。

quit()

rhinoを終了します。

quit();

print()

引数の値を表示します。

print(3);print(kotae);print('x=', x);

load()

指定されたファイルからプログラムを読み込みます。

load('pro1.js');

rhinoへの入力

上の３つの命令の他に、 計算式や、 スクリプト(プログラム)を入力することができます。

１つの文が入力されると、それを評価し結果を表示します。

js> 1 + 2;3js> a = 2 + 3 * 4;14js> print(a);14js>

代入文、if文、for文、while文なども使えます。 書き方はCとほとんど同じです。

js> for(i = 0; i < 5; i++) > print(i);01234js>