JavaScript前世今生

5673 ワード

JavaScript前世今生、HelloWorldと開発環境
JavaScript履歴
1992年ごろ、Nombasという会社がC-(C-minus-minus、略称Cmm)という組み込みスクリプト言語の開発を開始した.Cmmの背後にあるコンセプトは簡単です.マクロ操作(macro)の代わりに十分な強力なスクリプト言語を維持しながら、C(C++)との類似性は、開発者がすぐに習得できるようにしています.このスクリプト言語はCEnviという共有ソフトウェア製品に縛られており、開発者にこの言語の威力を初めて示しています.Nombasは最終的にCmmの名前をScriptEaseに変更しました.後ろの部分(mm)が「ネガティブ」に聞こえ、アルファベットCが「怖い」ためです. 現在ScriptEaseはNombas製品の背後にある主な駆動力となっている.Netscape Navigatorが頭角を現したとき,Nombasはウェブページに埋め込むことができるCEnviのバージョンを開発した.これらの初期の実験はEspresso Page(濃いコーヒーのようなページ)と呼ばれ、万次元ネットワークで使用されるクライアントスクリプト言語を代表しています.Nombasの理念がインターネットの重要な礎になるとは予想されていませんでした.
ネットサーフィンがますます流行するにつれて、クライアントスクリプトの開発に対する需要も徐々に増大している.この場合、ほとんどのインターネットユーザーは28.8 kbit/sのモデムだけでネットワークに接続され、ウェブページが絶えず大きく複雑になっても.さらにユーザの苦痛を増大させるのは,単純なフォーム有効性検証のためだけに,サーバ側と複数回の往復インタラクションを行うことである.ユーザーがフォームを記入し、提出ボタンをクリックして30秒の処理を待っていると、必要なフィールドを記入するのを忘れたことを示すフィールドが表示されます.技術革新の最先端だったNetscapeは、クライアント・スクリプト言語を開発して簡単な処理問題を解決することを真剣に考え始めた.
当時Netscapeで働いていたBrendan Eichは、1995年にリリースされるNetscape Navigator 2.0のLiveScriptと呼ばれるスクリプト言語の開発に着手し始めました.当時の目的はブラウザとサーバを同時に(本来はLiveWireと呼ぶ)端で使用する.NetscapeはSun社と提携してLiveScriptの実現をタイムリーに完了する.Netscape Navigator 2.0が正式に発表される前に、Javaというインターネットの流行語を利用するためにNetscapeをJavaScriptに改名した.Netspaceの賭けは最終的に報われ、JavaScriptはこれからインターネットの必須コンポーネントとなった.
JavaScript 1.0がこのように成功したため、NetscapeはNetscape Navigator 3.0で1.1版をリリースしました.ちょうどその時、マイクロソフトはブラウザに進出することを決定し、IE 3.0をリリースし、JavaScriptのクローン版を搭載した.Jscriptという.マイクロソフトがWebブラウザ分野に進出する重要な一歩は、評判を悪くしたが、JavaScript言語の発展過程における重要な一歩となった.
マイクロソフトが参入すると、Netscape Navigator 3.0のJavaScript、IEのJscript、CEnviのScriptEaseの3つの異なるJavaScriptバージョンが同時に存在します.Cや他のプログラミング言語とは異なり、JavaScriptには文法や特性を統一する標準はありませんが、この3つの異なるバージョンはこの問題を際立たせています.業界の懸念が高まるにつれて、この言語の標準化は明らかに必至だ.
1997年、JavaScript 1.1はヨーロッパのコンピュータメーカー協会(ECMA)に草案として提出された.第39技術委員会(TC 39)は「汎用的でプラットフォームにまたがり、メーカーに中立的なスクリプト言語の文法と意味を標準化する」(http://www.ecma-international.org/memento/TC39.htm).Netscape、Sun、マイクロソフト、Borland、およびスクリプトプログラミングに興味のある他の企業のプログラマーからなるTC 39は、ECMAScriptという新しいスクリプト言語を定義するECMA-262を鍛えた.
今後数年間、国際標準化機構および国際電工委員会(ISO/IEC)もECMAScriptを標準(ISO/IEC-16262)として採択した.それ以来、WebブラウザはECMAScriptをJavaScriptの実現の基礎として(ある程度の成功と失敗はあるが)努力し始めた.
ECMAScriptは重要な標準ですが、JavaScriptの唯一の部分ではありません.もちろん、唯一標準化された部分ではありません.実際,完全なJavaScript実装は以下の3つの異なる部分から構成されている.
コア(ECMAScript)-JavaScriptのコアECMAScriptは、言語の構文と基本オブジェクトを記述します.
文書オブジェクトモデル(DOM)--DOMは、ウェブページのコンテンツを処理する方法およびインタフェースを記述する.
ブラウザオブジェクトモデル(BOM)--BOMは、ブラウザと対話する方法およびインタフェースを記述する.
ECMAScript、DOM、BOMは私たちのその後の授業の主な内容になります.
JavaScriptとJava
名前にJavaがあるにもかかわらず、JavaScriptとJavaにはほとんど共通点がありません.Javaはフル機能のプログラミング言語で、Sun社が開発し普及しています.JavaはCとC++プログラミング言語の後のもう一つの主流言語であり、プログラマーはそれを使って完全なアプリケーションを作成し、消費電子機器を制御することができる.他の言語とは異なり、Javaはプラットフォーム間互換性があると主張している.つまり、プログラマは、Windows、Mac OS X、またはどのスタイルのUNIXを実行しても、すべての種類のマシンで実行できるJavaプログラムを作成できるはずです.しかし、実際には、Javaは必ずしもこの夢を実現することはできません.サンとマイクロソフト社はこのような言語の発展方向に大きな違いがあるからです.Microsoft社はまず、JavaをWindowsに独自の方法で統合しようとしています.(Sunは、JavaをWindows上で1つの方法で動作させ、他のマシン上で別の方法で動作させ、Javaのプラットフォーム間互換性を破壊したと考えている).その後、マイクロソフト社はWindowsからSunのJavaを完全に除去し、独自のJava言語:C#を作成した.両社間の訴訟を経て、Sunが優位を占め、現在はWindows(またはLinux)にSunの最新Javaバージョン(http://www.java.com/getjava/).Mac OS Xオペレーティングシステムは、インストール時にJavaが付属します.
JavaScriptでできること
JavaScriptでは、Webページのインタラクティビティを向上させ、サイトのユーザーにより良い、より興奮した体験を提供することができます.JavaScriptでは、アクティブなユーザーインタフェースを作成し、ユーザーがページ間をナビゲートしたときにフィードバックを提供することができます.たとえば、マウスポインタが止まったときに強調表示されるボタンをいくつかのサイトで見たことがあります.これはJavaScriptで実現されたもので、フリップフロップと呼ばれる(rollover)のテクノロジーでは、JavaScriptを使用して、ユーザーがフォームに有効な情報を入力することで、ビジネス時間と費用を節約できます.フォームが計算する必要がある場合は、サーバ側の処理を必要とせずにユーザーマシン上のJavaScriptで完了できます.ユーザーマシン上で実行されるプログラムを区別する方法を知っておく必要があります.クライアント(client-side)プログラム;サーバ上で実行されるプログラム(後述するCGIを含む)をサーバ側と呼ぶ(server-side)プログラム.JavaScriptを使用して、ユーザーの操作に応じてカスタマイズされたHTMLページを即座に作成できます.旅行ガイドサイトを実行している場合、ユーザーはハワイを旅行先としてクリックします.新しいウィンドウに最新のハワイ旅行ガイドを表示できます.JavaScriptはブラウザを制御できるので、新しいウィンドウを開き、警告ボックスを表示できますまた、ブラウザウィンドウのステータスバーにカスタムメッセージを表示します.JavaScriptには、クロック、カレンダー、タイムスタンプドキュメントを生成する日付と時間の特性があります.JavaScriptでは、フォームの処理、クッキーの設定、HTMLページの即時構築、Webベースのアプリケーションの作成もできます.
JavaScriptは何もできません
JavaScriptはクライアント言語です.つまり、サーバではなくユーザーのマシン上でタスクを実行することを目的として設計されています.そのため、JavaScriptにはいくつかの固有の制限があります.これらの制限は主にセキュリティ上の理由から行われています.
1.JavaScriptでは、クライアントマシン上のファイルの読み書きは許可されていません.これは、Webページが自分のハードディスク(HDD)のファイルを読み取ったり、ウイルスをハードディスク(HDD)に書き込んだり、コンピュータのファイルを操作したりすることを望んでいないため、メリットがあります.唯一の例外は、JavaScriptはブラウザのクッキーファイルに書き込むことができますが、の制限もあります.
2.JavaScriptでは、サーバマシン上のファイルの書き込みは許可されていません.サーバ上のファイルを書くことは、ページのクリック数やユーザーが記入したフォームデータを格納するなど、多くの点で便利ですが、JavaScriptでは許可されていません.逆に、サーバ上のプログラムでこれらのデータを処理して格納する必要があります.このプログラムは、PerlやPHPなどの言語で作成されたCGIやJavaプログラムです.3.JavaScriptは自分で開かないウィンドウを閉じることができません.これは、1つのサイトが他のサイトのウィンドウを閉じてブラウザを独占しないようにするためです.
4.JavaScriptは、別のサーバから開いているWebページから情報を読み取ることができません.すなわち、ウェブページは開いている他のウィンドウの情報を読み取ることができないため、このサイトにアクセスしているサーファーが他のサイトにアクセスしているかを探ることができない.
 
Hello,JavaScriptWorld!
私たちの最初のスクリプト:最も古典的なHelloWorldプログラム!
	<script type="text/javascript">
		document.write("<h2>Hello,JavaScriptWorld!</h2>");
	</script>

開発環境
好きなテキストエディタを選択するか、
IDE
NotePad++
VIM
UltraEdit
EditPlus
gEdit(Unix)
Emacs(Mac/Unix)
その他
少なくとも1つのW 3 C規格に適合するブラウザ(火狐ブラウザを推奨)、およびいくつかの市場で流行しているブラウザ(IE)
FireFox 3.0+
Internet Explorer 6.0+(IEにはさまざまなバージョンがあるため、IETesterのインストールも推奨)
Google Chrome 1.0+
Opera 9.0+
Safari 3.0+
デバッグツール
FireFox下のFireBug,Venkmanなど
IE下のIE DeveloperToolbar、MS Script Debuggerなど(MS Script Debuggerは強く推奨しないが、インストール後に問題が多い)
Google ChromeのJSコンソールはすでに強大で、Operaの誤ったコンソールも可能で、OperaトンボはFireBugと同じように強大で、SafariはChromeと同じコンソールを持っています
 
本編と後続シリーズは李炎恢先生に由来する.