JavaScript とは何ですか?
JavaScript® は、Netscape が開発したオブジェクトスクリプティング言語で、 多くのウェブページやサーバーアプリケーションで世界中で使われています。 Netscape の JavaScript は、ECMA-262 改訂3版 (ECMAScript) 標準スクリプティング言語の スーパーセットで、公布されている規格とはほとんど違いがありません。
よくある誤解に反して、JavaScript は "インタープリット可能な Java" ではありません。 一言で言えば、JavaScript はプロトタイプベースのオブジェクト構文をサポートした 動的なスクリプティング言語です。 基本的な構文はこの言語を習得するのに必要な新しい概念を減らすために、 Java と C++ の両方にわざと似せてあり、 if
文、for
、while
ループと switch
、try ... catch
ブロック などの言語要素はそれらの言語と同じように (あるいはそれに近い) 働きます。
JavaScript は手続き型 (procedural) 言語 (日本語訳) と オブジェクト指向 (object oriented) 言語の両方として機能することができます。 JavaScript では、 C++ や Java のようなコンパイラ型言語において一般的な構文クラス定義と反対に、 オブジェクトは実行時にメソッドとプロパティをそれ以外からのオブジェクトに加えることでプログラム上に作成されます。一度オブジェクトが構築されると、 そのオブジェクトは同じようなオブジェクトを作成するための青写真 (あるいはプロトタイプ) として使われます。
JavaScript の動的な性質は、 実行時のオブジェクト構築、可変の引数リスト、関数変数、(eval
による) 動的スクリプト作成、 (for ... in
による) オブジェクトの内部参照、あるいはソースコード復元 (JavaScript のプログラムは関数本体をソーステキストに逆コンパイルできる) を含んでいます。
固有のオブジェクトは Number
、 String
、Boolean
、Date
、RegExp
、そして Math
です。
JavaScript プログラミングに関するより深い議論については、 下の JavaScript リソースのリンクから得られます。
どのような JavaScript の実装を利用できますか?
mozilla.org は二つの JavaScript 実装をホストしています。最初の JavaScript は Netscape の Brendan Eich が作成して、 ECMA-262 改訂5版 (JavaScript 1.5 と同じ) に適合するようにアップデートされてきました。 このエンジンは、SpiderMonkey というコードネームで、C で実装されています。 Rhino エンジンは、主に Norris Boyd (この人も Netscape) によって作成され、 Java による JavaScript の実装です。 SpiderMonkey のように、Rhino も ECMA-262 改訂3版に準拠しています。
時々、 SpiderMonkey の JavaScript エンジンには、 TraceMonkey (Firefox 3.5) や JägerMonkey (Firefox 4)、IonMonkey のようないくつかの最適化が加えられました。
上記の実装の他にも、以下のような人気の JavaScript エンジンがあります。
- Google Chrome で使われている Google の V8
- Safari (Apple) などの Webkit ブラウザで使われている JavaScriptCore (SquirrelFish/Nitro)
- Opera の Carakan
Internet Explorer で使われている Chakra エンジンは、厳密には JavaScript エンジンというよりもむしろ JScript エンジンです。
mozilla.org の各 JavaScript エンジンは、アプリケーションが JavaScript をサポートするために呼び出せる 公開 API を公開しています。 JavaScript をサポートした最も一般的なホスト環境はウェブブラウザです。 ウェブブラウザは主に DOM の JavaScript への実装を担当する 'ホストオブジェクト' を作成するのに公開 API を使っています。
JavaScript にとってもう一つの一般的なアプリケーションは、 (ウェブ) サーバーサイドスクリプティング言語です。 JavaScript を使うウェブサーバーでは、 実際のHTTP リクエスト/レスポンスオブジェクトに代わるものとして、 ホストオブジェクトを他のプログラムから見える形で置くことになり、 JavaScript プログラムは、そのオブジェクトを操作して 動的にウェブページを生成することができます。
JavaScript をあなたのアプリケーションに組み込むより詳しい情報のため、下の SpiderMonkey か Rhino のリンクに進むか、netscape.public.mozilla.jseng ニュースグループで私たちを訪れて下さい。
JavaScript リソース
- SpiderMonkey
- C エンジンの JavaScript (SpiderMonkey と呼ばれている) の組み込みについての 詳細情報
- Rhino
- Java エンジンの JavaScript (Rhino と呼ばれている) の組み込みについての 詳細情報
- 言語リソース
- 公布されている JavaScript の標準、LiveConnect の文書、 JavaScript 2.0 の作業を指します。
- Tamarin プロジェクト
- ハイパフォーマンスでオープンソースの JavaScript 2.0 仮想マシンについての情報
- JavaScript「再」入門
- JavaScript ガイド および JavaScript リファレンス
- スクリプティングリソース
- 推薦する読み物、オンラインリファレンスとチュートリアルとサンプルコードを含む、 JavaScript のスクリプティングリソースを指します。
- プロジェクトのページ
- オープンソースの JavaScript エンジンを用いた他のプロジェクトのリスト。
- テストライブラリのページ
- JavaScript のテスト一式に関する情報
- mozilla.dev.tech.js-engine
- JavaScript エンジンに関する議論を行うニュースグループ
- comp.lang.javascript
- ECMAScript (ほとんどの場合ブラウザに関連するもの) について一般的な議論を行うニュースグループ
JavaScript は、米国およびその他の国における、Oracle の商標または登録商標です。