JavaScript
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

ウィキペディアにおける各利用者のJavaScriptの使用法については、「Wikipedia:カスタムJS」をご覧ください。

Java」とは異なります。

JavaScriptlogo.jsによるJavaScriptの非公式ロゴ
パラダイムマルチパラダイム
登場時期1995年 (29年前) (1995)
設計者ブレンダン・アイク
開発者ネットスケープコミュニケーションズMozilla Foundation
最新リリースECMAScript 2023[1] / 2023年6月 (11か月前)
評価版リリースECMAScript 2025[2]  / 2024年3月27日 (47日前)
型付けダック・タイピング
主な処理系JavaScriptCoreKJSNitroRhinoSpiderMonkeyV8ほか
方言JScript
影響を受けた言語SchemeSelfJavaLuaPerlAWKHyperTalkPython 
影響を与えた言語Dart、Objective-J(フランス語版)、Google Apps ScriptTypeScript
プラットフォームクロスプラットフォーム
ウェブサイトwww.ecma-international.org/publications-and-standards/standards/ecma-262/
拡張子.js、.cjs、.mjs
テンプレートを表示
HTML中のJavaScript。scriptタグで囲まれている。

JavaScript(ジャバスクリプト)は、プログラミング言語であり、HyperText Markup Language(HTML)やCascading Style Sheets(CSS)と並ぶ World Wide Web(WWW)の中核技術の一つである。

プロトタイプベースオブジェクト指向スクリプト言語であるが、クラスなどのクラスベースに見られる機能も取り込んでいる。

利用される場面はウェブサイトウェブアプリケーション、バックエンド、デスクトップアプリケーションモバイルアプリケーションなど、ウェブブラウザからサーバ、デスクトップからスマートフォンまで多岐にわたっている。

Javaと似た名称を持つが、異なるプログラミング言語である(#歴史を参照)。
概要

JavaScriptはWebブラウザNetscape Navigatorに起源を持ち、現在では様々な用途に利用されるプログラミング言語である。

JavaScriptの言語仕様はECMAScriptとして標準化され、実装は各種のJavaScriptエンジンによって提供されている。JavaScriptエンジンの例としてChromium系ブラウザのV8Mozilla FirefoxSpiderMonkeySafariのJavaScriptCoreが挙げられる。

言語仕様を定義するECMAScriptのほかに、WebブラウザへアクセスするためのAPI仕様にDOMなどがある。これらはECMAScriptから独立しており、JavaScriptからも独立した概念である。
プログラミング言語としての特徴

JavaScriptは以下のような様々なスタイルのプログラミングが可能である。

if・forなどの
制御構造による手続き型プログラミングスタイル

.prototype・classなどのオブジェクトによるオブジェクト指向プログラミングスタイル

map・高階関数などの関数操作による関数型プログラミングスタイル

これらを可能にしているプログラミング言語としての特徴に、以下のことが挙げられる。オブジェクト指向の面では、JavaScriptのオブジェクトはクラスベースではなくプロトタイプベースである[注釈 1]。関数型の面では、第一級関数をサポートし関数を第一級オブジェクトとして扱える。

AptanaEclipse, NetBeans, IntelliJ IDEAなどの統合開発環境はJavaScriptをサポートしており、大規模開発が可能になっている。さらにExt JSなどの本格的なGUIライブラリの登場により、デスクトップアプリケーションと遜色ないユーザインタフェースの構築が可能になった。
並行処理

JavaScriptではしばしば、ネットワークを介したリクエストのような 待ち がある処理を行う[注釈 2]。これに対処するために非同期処理をサポートし並行処理が可能となる。標準で用意されている処理機能にも非同期処理されるものがある。

非同期処理を記述する方法としてコールバック関数がある。JavaScriptはコールバック関数記法をラップするPromise、Promiseを同期的なコードのように記述できるAsync/await構文をもつ。

またJavaScriptは並列処理による並行処理もサポートしている(下記参照)。
並列処理

JavaScriptでは複数スレッドを用いた並列処理が可能である。共有メモリ上のバッファを表現するSharedArrayBuffer、バッファ操作オブジェクトAtomicsが定義されている。スレッドそのものの仕様は環境ごとに異なる(ECMAScriptでは定義されていない)。ブラウザの場合はWorker、Node.jsの場合はworker_threadsで定義されている。ただこの2環境ではほぼ共通の仕組みとなっており、例えばpostMessageによるメッセージングが両者でサポートされている。
歴史
誕生

JavaScriptはネットスケープコミュニケーションズブレンダン・アイクによって、1995年5月に10日間で開発された。上司からの指示に「Javaのような外観にしてくれ」「初心者に優しく」「Netscapeブラウザのほとんどなんでも制御できるように」との注文があった[3]。Netscape Navigator 2.0で実装された。

開発当初はLiveScriptと呼ばれていたが、1995年サン・マイクロシステムズ(現・オラクル)が開発したプログラミング言語Javaが当時大きな注目を浴びており、ネットスケープとサン・マイクロシステムズが業務提携していた事もあったため、JavaScriptという名前に変更された[4][5]。最初のJavaScriptエンジンはブレンダン・アイクによりNetscape Navigatorのために作成されたものであった。このエンジンはSpiderMonkeyと呼ばれており、C言語で実装されていた。また、全てJavaで記述されたJavaScriptエンジンであるRhinoも同じくNetscapeのNorris Boyd(後にGoogleに移籍)らにより作成された。

1996年マイクロソフトInternet Explorer 3.0にJScriptという名前で搭載されるようになると、その手軽さからJavaScriptは急速に普及していく。1997年、通信に関する標準を策定する国際団体EcmaインターナショナルによってJavaScriptの中核的な仕様がECMAScriptとして標準化され[6]、多くのウェブブラウザで利用できるようになった。

ネットスケープは、ウェブアプリケーション開発言語として自社のサーバ製品に実装したLiveWire JavaScriptも発表したが[5]、こちらはあまり普及しなかった。

JavaScriptの登場初期は、ブラウザベンダー間で言語仕様の独自拡張が行われていたため、ブラウザ間の互換性が極めて低かった。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:65 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef