JavaScriptが登場したのは1995年。「Netscape Navigator 2.0」というWebブラウザに実装されたのが最初です。当初は「Webページに動きを付けるもの」という程度にしか見られていませんでした。むしろJavaScriptを使ったWebページは、当時の非力なパソコンでは処理の負荷が高く、忌み嫌われることすらありました。

 そんなJavaScriptが脚光を浴びるようになったのは、JavaScriptで高機能なWebページを実現する「Ajax」(Asynchronous JavaScript+XML)という技術が登場したのがきっかけです。米GoogleがAjaxを使って実現した「Gmail」や「Googleマップ」といったサービスが、JavaScriptの実力を世に知らしめました。JavaScript自体に大きな変化があったわけではなく、潜在的に持っていた本来の能力が認められるようになったのです。

 そして2014年、JavaScriptの力を100%発揮したWebアプリを作れるようになるHTML5ついに登場します。HTML5には、位置情報を利用するための「Geolocation API」、Webページに図形を描画するための「Canvas 2D Context」、サーバーとのリアルタイム通信を実現する「WebSocket API」といった技術が含まれます。これらはいずれも、JavaScriptで利用することを前提としたAPIです。JavaScriptはもはや、HTML5でWebアプリを開発する人にとって「知っていて当然の言語」であり、まさに「現代プログラマの必須知識」なのです。

関数そのものがオブジェクト

 JavaScriptを理解するカギは関数にあります。「関数なら知ってるよ」と思う読者がいるかもしれませんが、JavaScriptの関数は、様々な側面を持っています。

 まず、JavaScriptの関数は、変数のスコープ(有効範囲)を提供するものです。ある程度の規模のソフトウエアを開発するには、変数のスコープを適切に管理する必要があります。

 また、JavaScriptの関数は、それ自体がオブジェクトです。オブジェクトであるため、数値や文字列といったデータと同じく、変数に格納したり、引数として他の関数に渡したりすることが可能です。

 JavaScriptの関数は、クラスとして利用することもできます。JavaScriptのクラスは、Javaなどの他のオブジェクト指向言語のクラスとは少し異なります。関数がクラスの役割を持てるのです。正確にはJavaScriptにはクラスという概念はありませんが、クラスを想定することでJavaScriptのオブジェクト指向を理解しやすくなります。

この先は会員の登録が必要です。有料会員(月額プラン)は登録月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら