JavaScript 【JS】
概要
JavaScript(JS)とは、主にWebページに組み込まれたプログラムをWebブラウザ上で実行するために用いられるプログラミング言語の一つ。いわゆるスクリプト言語あるいは軽量言語(LL:Lightweight Language)の一つで、実行環境をWebブラウザに組み込んで利用されることが多い。主な特徴
C言語やJavaに似た記法や文法を採用した手続き型の言語で、簡潔な記述でプログラムを開発することができる。関数を変数のように(第一級のオブジェクトとして)扱ったり、関数を引数に取る高階関数を定義できるなど、関数型プログラミング言語の仕様も取り込んでいる。
オブジェクト指向にも対応しているが、他の多くの言語で一般的な、オブジェクトの雛形を定義したクラスを用いる方式(クラスベース)ではなく、既存のオブジェクトを複製して機能を追加していく「プロトタイプベース」と呼ばれる手法を採用している。
Webブラウザでの利用
WebページのHTMLファイル内に特殊な記法を用いて埋め込まれて記述され、Webブラウザに内蔵された言語処理系によってページの表示時に解釈・実行されることが多い。スクリプトのみを記述したファイル(.jsファイル)を読み込む形で利用されることもある。ページ内の要素に動きや効果を加えたり、閲覧者の操作に即座に反応して何らかの処理を行ったりするのに用いられる。
主要なWebブラウザの多くが標準で対応しているが、ブラウザの種類やバージョンによって仕様や挙動に違いがあり、開発者を悩ませ続けている。他の言語の場合にも見られる言語そのものの仕様・実装の違い(バージョンの違いや各社独自の拡張や仕様・実装の相違)の他に、HTMLやCSSの仕様や解釈の相違や、スクリプトからWebページ上の表示要素を扱う際に必要となるDOM(Document Object Model)と呼ばれるAPIの違いもあるため、複数のブラウザで同じように動作するスクリプトを開発するのは一筋縄ではいかない。
他の実行環境
近年ではWebブラウザに留まらず様々な環境に言語処理系が移植され、様々な用途で使用されている。Node.jsやASP.NETのようにWebサーバ上でプログラムを実行して動的にWebブラウザに応答を返すシステムや、オペレーティングシステム(OS)上で直に実行可能な処理系(Windows Scripting Hostなど)がよく知られる。米アドビ(Adobe)社の「Flash」では標準のスクリプト言語に採用されていた(正確にはActionScriptと呼ばれる方言)。
AltJS
開発効率や保守性、プログラムの読みやすさなどの改善、よく起こりがちな誤りの防止などを目的に、JavaScriptを元に独自の機能や仕様を追加したり、文法や記法の追加・変更を行った言語がいくつか開発されており、「AltJS」(Alternative JavaScript)と総称される。
これらの言語で書かれたプログラムは「トランスパイラ」(transpiler:トランスコンパイラの略)と呼ばれる変換ソフトにより一旦JavaScriptによる表記に変換されるため、JavaScriptの実行環境さえあれば通常のスクリプトと同じように実行できる。著名なものには「TypeScript」や「JSX」、「CoffeeScript」などがあり、Webアプリケーションの開発現場などでよく利用される。
Javaとの違い
名称にプログラミング言語「Java」の語を冠しているが、他の「Java○○」技術とは異なり、Java言語の拡張仕様や関連技術などではなく、記法や予約語などの一部が共通していること以外に直接的な繋がり互換性はない。
実際、型システムや関数、オブジェクト指向の扱いなど言語仕様の根本的な部分のいくつかがJavaとは大きく異なる。かつてはJavaにもWebページ内にプログラムを埋め込んで実行する「Javaアプレット」と呼ばれる仕組みがあったため、主に技術者以外のWebに携わる人々にとって名称が紛らわしく、しばしば混同や取り違えが発生した。
歴史
1995年にネットスケープ・コミュニケーションズ(Netscape Communications)社(当時)のブランダン・アイク(Brendan Eich)氏によって開発され、当時最も人気の高いWebブラウザだった「Netscape Navigator 2.0」に初めて実装された。
当初は「LiveScript」(ライブスクリプト)という名称だったが、同社がJava開発元のサン・マイクロシステムズ(Sun Microsystems)社(当時)と提携していたことから、Javaの名称を冠してJavaScriptに改称された。
1997年にはEcma International(エクマ・インターナショナル)によって「ECMAScript」の名称で仕様が標準化され、ISOやJISなども同様の規格を標準化した。ECMAScriptは20年以上に渡って活発に改版を重ねており、各社の処理系もこれに準拠する形で機能追加が進められている。
関連用語
JavaScript用語辞典
関連リンク (外部サイト)
他の辞典による解説 (外部サイト)
- ウィキペディア 「JavaScript」
- 総務省 国民のためのサイバーセキュリティサイト 用語集 「JavaScript」
- 日経 xTECH Active キーワード 「JavaScript」
- 日経 xTECH Linuxキーワード 「JavaScript」
- 日経 xTECH Tech-On!用語 「JavaScript」
- Web担当者Forum 用語集 「JavaScript」
- MDN Web Docs 用語集 「JavaScript」
- JPNIC インターネット用語1分解説 「JavaScript」
- @IT XML用語事典 「JavaScript (ECMA Script)」
- 日本インタラクティブ広告協会 インターネット広告基礎用語集 「JavaScript」
この記事を参照している文書など (外部サイト)
- 福岡県古賀市「古賀市役所・公式ホームページ ホームページ作成ガイドライン」(PDFファイル)にて引用 (2013年3月)
- 宮崎公立大学人文学部紀要 16巻1号「大学新入生の数値資料処理技能の現状を踏まえた集計・図示支援用scriptの原型作成の試み」(PDFファイル)にて引用 (2009年3月)