JavaScript

 JavaScriptについての個人的なまとめ

JavaScriptついてのまとめ

 

開発の経緯

Netscape社が開発したオブジェクトスクリプティング言語。 
Netscape社のBrendan Eichが作成したECMA-262 改訂3版(EMCAScript)[PDF]標準スクリプティング言語のスーパーセットで、公布されているJavaScript 1.5 との差はほぼない。 
Netscape社が開発したLiveScriptが元となっている。 
Netscape社とMicrosoft社でJavaScriptの仕様が異なっていた為、両者が参加し、EMCAが標準化した企画であるECMAスクリプトとなる。

 言語特性

手続き型(procedural)言語とオブジェクト指向(object oriented)言語の両方として機能する。 
型付けはダック・タイピング(duck typing)。 
オブジェクトはJavaScriptでは、C++やJavaのようなコンパイラ型言語において一般的な構文クラス定義(「クラス・ベース」のオブジェクト指向)とは反対に、実行時にメソッドとプロパティをそれ以外からのオブジェクトに加えることで、プログラムに基づいて作成される(プロトタイプ・ベース」のオブジェクト指向)。 
一度オブジェクトが構築されると、同じようなオブジェクトを作成するのにプロトタイプとして用いる事が可能となる。 
実行時のオブジェクト構築、可変の引数リスト、関数変数、動的スクリプト作成、オブジェクトの内部参照、ソースコード復元 
固有のオブジェクトはNumber,String,Boolean,Date,RegExp,Math 
関数はFunctionオブジェクトというオブジェクトであり、関数の定義がオブジェクトを生成するコンストラクタとなる。 
よって関数はプロパティを持つことが出来る。 
プロパティに実行可能な関数を代入することで、実行可能なプロパティ(メソッド)が定義できる。 
JavaScriptのプロパティは特に定義を必要とせず、随時追加する事が出来る。 
その反面、オブジェクトの内部からアクセス可能なプロパティ(プライベート変数)は定義できない。 
オブジェクトのプロパティ名には文字列を指定することが出来るので、変数によりプロパティ名を指定する事ができる。 
例)var test=fugafuga; hogehoge['test']; ならばhogehogeのfugafugaプロパティを参照。 ??

 

実行エンジン

SpiderMonkey

mozilla.orgのJavaScript実装の一つ。 
ECMA-262 改訂3版(JavaScript 1.5)に適合するようにアップデートされてきた。 
C言語により実装されている。

Rhino

mozilla.orgのJavaScriptの実装の一つ。 
Netscape社員のNorris Boydによって作成されたJava言語によるJavaScriptの実装。 
ECMA-262 改訂3版(JavaScript 1.5)準拠。

 

実行方法

HTMLへと組み込む

クライアント側のスクリプトはHTML文章と連携するか、または文章に直接組み込まれるプログラムであり、文章がクライアント環境に読み込まれるか何らかのイベントが発生した場合に実行される。 
スクリプトは文章内容を動的に変更する為に最初に読み込み評価される。

 

SCRIPT要素

開始タグ
必須
終了タグ
必須
属性定義
src = uri[CT]
外部スクリプトの所在を指定する。
type = content-type[CI]
デフォルトのスクリプト言語を上書きし、当該要素内容のスクリプト言語を指定する。 

スクリプト言語はMIMEタイプで指定する。 
この属性値は必ず記述しなければならず、デフォルト値は存在しない。
language = cdata[CI]
非推奨 

当該要素内容のスクリプト言語を指定するが、指定する識別子がインターネットの標準ではないので、この属性は推奨されない。
defet [CI]
この論理型属性を設定した場合、ユーザエージェントに対し、当該スクリプトが文章の本文を少しも生成しないことが示唆される。 

例えば、JavaScriptでいう「document.write」が含まれない、など従ってユーザエージェントは、スクリプトの実行を待たずにパースとレンダリングを継続出来る。

解説
SCRIPT要素はHTML文章中にスクリプトを組み込む物で、HEAD要素または、BODY要素中に何度出現してもよい。 
スクリプトはこのSCRIPT要素の内容か、または外部ファイルで定義される。

SpiderMonkey



JavaScriptサンプル

アラートの表示 

JavaScriptライブラリ

Prototype.js

Prototype.js 公式サイト

 

 

 

参考サイト

Mozilla Developer 日本語 
W3C勧告私的日本語訳 HTML4.0.1 18 スクリプト 
ITPro 知られざるJavaScriptの世界 
EMCAScript 
Under Translation of ECMA-262 3rd Edition 
Welcome to Ecma International 
JavaScript講座 [Smart] 
JavaScript 
知られざるJavaScriptの世界:ITpro 
JavaScriptでとっても滑らか!画像切替のシンプルな技 
【連載】いまからはじめるPrototype.js (1) Prototype.jsの概要と$で始まるメソッド | エンタープライズ | マイコミジャーナル 
Venkman - MDC 
SpiderMonkey (JavaScript-C) Engine