入門編

This article is in need of a technical review.

This article is in need of an editorial review.

本章では JavaScript について紹介し、その基本的なコンセプトについて説明します。

事前に知っておくべきこと

このガイドでは、以下の基礎的な予備知識を持っていることが前提です:

  • インターネットと World Wide Web (WWW) についての一般的な理解
  • HyperText Markup Language (HTML) についての実用的な知識
  • プログラミングの経験。プログラミングが初めての方は、JavaScript についてのメインページにあるチュートリアルをお試しください。

JavaScript の情報源

MDN には以下の JavaScript 関連ドキュメントがあります:

  • Web について学ぶ」では初心者に向けた情報を提供し、プログラミングとインターネットの基本的なコンセプトを提供しています。
  • JavaScript ガイド」(このガイドページです)では JavaScript 言語とそのオブジェクトに関する概要を提供しています。 
  • JavaScript リファレンス」は JavaScript に関する詳細なリファレンスマニュアルを提供しています。

もしあなたが JavaScript を初めて学ぶ場合、 学習エリア、および JavaScript ガイドの記事から始めてください。基礎をしっかり学んだら、個別のオブジェクトや文についての詳細を得るのに JavaScript リファレンスを使うことができます。

JavaScript とは?

JavaScript はクロスプラットフォームで動く、オブジェクト指向のスクリプト言語です。また、小さく軽量な言語です。ホスト環境内では、JavaScript と環境内のオブジェクトとを結びつけることで、それらにプログラム制御機能をもたらすことができます。

JavaScript には、ArrayDate、そして Math といったオブジェクトからなる基本的なライブラリ、そして演算子、制御構造、文といったプログラミング言語の要素からなる主要な機能が内蔵されています。JavaScript の主要機能は追加のオブジェクトを補うことで様々な目的に拡張することができます、例えば:

  • クライアントサイド JavaScript はブラウザとそのドキュメントオブジェクトモデル (DOM) を制御するオブジェクトを提供することでコア言語を拡張しています。例えば、クライアントサイド JavaScript はアプリケーションに対し、HTML フォーム上に要素を配置したり、マウスクリック、フォームへの入力、ページ移動といったユーザイベントに応答できるようにします。
  • サーバサイド JavaScript は JavaScript を使ったサーバの稼働に関連するオブジェクトを提供することでコア言語を拡張しています。例えば、サーバサイド JavaScript はアプリケーションに対し、データベースとデータをやり取りし、アプリケーション内で呼びだされた情報が連続性を保ったまま受け取られるようにし、あるいはサーバ上のファイル操作を行えるようにします。

JavaScript と Java

JavaScript と Java はいくつかの点では似ていますが、その他の点では全くの別物です。 JavaScript 言語は Java と共通点がありますが、 Java のような静的型付けと強い型検査を持っていません。LiveScript から JavaScript へと改名する理由ともなった、Java が持つ多くの式構文、命名規則と基本的な制御フローを JavaScript は踏襲しています。

宣言によって作られたクラスから構成される Java のコンパイル時システムとは対照的に、JavaScript は数値や真偽値、文字列を表す少数のデータ型をベースにしたランタイムシステムをサポートしています。JavaScript はより一般的であるクラスベースのオブジェクモデルの代わりに、プロトタイプベースのオブジェクトモデルを持っています。プロトタイプベースモデルは動的な継承をもたらします、それはつまり、様々なオブジェクトから継承できるということです。また JavaScript は特殊な宣言型を必要としない関数をサポートしています。関数をオブジェクトのプロパティに置き、弱い型付けのメソッドとして実行することができます。

JavaScript は Java に比べて非常に自由な形式を持つ言語です。変数、クラス、メソッドをあまねく宣言する必要はありません。メソッドが public か、 private か、 あるいは protected かどうかを気に掛けることも、インターフェイスを実装する必要もありません。変数、仮引数、そして型を返す関数は厳密に型付けされていません。

Java は高速実行と型安全のためにデザインされたクラスベースのプログラミング言語です。型安全というのは、例えば Java の整数値はオブジェクトの参照値として型変換することはできず 【訳注: Java のデータ型は、数値や文字列などのデータのみを表すプリミティブ型とクラス定義されたオブジェクト型(参照型とも呼ばれる)の2つに分かれており、プリミティブ型のデータをオブジェクトから参照する場合はラッパークラスを使いそのデータを適切なオブジェクト型に明示的に変換する必要がある】、またメモリ環境を破壊しようとする Java バイトコードからはプライベートメモリにアクセスできないようになっているということです。Java のクラス継承と強い型付けは一般的に密結合されたオブジェクト階層を必要とします。こうした前提条件によって Java プログラミングは JavaScript プログラミングに比べ複雑なものとなります。

それとは対照的に、JavaScript は HyperTalk や dBASE といった一連の小規模で動的型付けを持つ言語の精神を受け継いでいます。これらのスクリプト言語が持っている、より簡素な構文、専門化されたビルトイン関数、そして最低限の条件のみを必要とするオブジェクト作成のおかげで、より広い人々にプログラミングという道具をもたらしてくれます。

JavaScript と Java との比較
JavaScript Java
オブジェクト指向言語。オブジェクトのデータ型に区別はない。継承はプロトタイプベースの機構を通して行われ、プロパティとメソッドはどんなオブジェクトにも動的に追加できる。 クラスベース言語。オブジェクトはクラスとそのクラス階層によって継承されたインスタンスとに分かれている。クラスとインスタンスは動的にプロパティやメソッドを追加することができない。
変数のデータ型は宣言が不要(動的型付け)。 変数のデータ型は宣言が必須(静的型付け)。
ハードディスクには自動的に書き込みできない。 ハードディスクには自動的に書き込みできる。

JavaScript と Java との違いについてのさらなる情報については、オブジェクトモデルの詳細の章をご覧ください。

JavaScript と ECMAScript 仕様

JavaScript は国際的なプログラミング言語を提供できるように Ecma International によって標準化されています(ECMA は以前は European Computer Manufacturers Association の接頭語でした)。この標準化された JavaScript のバージョンは ECMAScript と呼ばれ、この標準化をサポートするアプリケーションは同様に機能します。企業は JavaScript の実装開発にこのオープンな標準言語を利用できます。ECMAScript の標準化は ECMA-262 仕様書に文書化されています。JavaScript バージョンと ECMAScript 標準化の各版との違いについて知りたい場合は JavaScript の新機能をご覧ください。

ECMA-262 の標準化は ISO(International Organization for Standardization、国際標準化機構)により ISO-16262 としても承認されています。また仕様書は Ecma International のウェブサイトでも確認できます。ECMAScript 仕様書は World Wide Web Consortium (W3C、ワールドワイド・ウェブ・コンソーシアム) によって標準化されているドキュメントオブジェクトモデル (DOM) については記述されていません。DOM はスクリプトから利用できる HTML ドキュメントのオブジェクトを定義しています。JavaScript でプログラミングする際に使われる様々な技術についてさらに知りたければ、JavaScript 技術概説の記事を参考にしてください。

JavaScript ドキュメント vs ECMAScript 仕様書

ECMAScript 仕様書は ECMAScript の実装要件の集合体です。これは ECMAScript 実装やブラウザ描画エンジン(Firefox の SpiderMonkey、あるいは Chrome の v8 といった)に対し、標準化に準拠した言語機能を実装したい場合には便利です。

ECMAScript の文書はスクリプトプログラマーを支援する目的のものではありません。スクリプトの記述についての情報を知りたければ JavaScript のドキュメントを使いましょう。

ECMAScript 仕様書は JavaScript プログラマーにはあまりなじみのないような専門用語と文法で書かれています。この言語を解説したものと ECMAScript とは異なるところがあるかもしれませんが、この言語自体は同じものです。JavaScript は ECMAScript 仕様書で描かれた機能をすべてサポートしています。

JavaScript のドキュメントは JavaScript プログラマーに適した形で言語の特徴について記述しています。

JavaScript を始めよう

JavaScript を始めるのは簡単、必要なのは今どきの Web ブラウザだけです。このガイドでは最新の Firefox でのみ利用できる JavaScript の機能をいくつか使用しますので、最新の Firefox を使いましょう。

JavaScript の体験に便利な、Firefox 内蔵のツールが2つあります。それが Web コンソールとスクラッチパッド。

Web コンソール

Web コンソール は現在ロードされている Web ページについての情報を表示し、現在のページで JavaScript の式を実行するのに使えるコマンドラインも内蔵しています。

Web コンソールを開くには(ショートカットキーは Ctrl+Shift+K)、Firefox の「ツール」メニューにある「Web 開発」から「Web コンソール」を選んでください。ブラウザウインドウの下部に Web コンソールが現われます。コンソールの一番下にあるのは JavaScript を入力できるコマンドラインで、その出力はペイン上部に表示されます:

スクラッチパッド

Web コンソールはワンライナーの JavaScript を実行するには最適ですが、数行からなるコードを実行するには不便ですし、Web コンソールを使ってコードを保存することはできません。そのような複雑な場合にはスクラッチパッドが最適なツールです。

スクラッチパッドを開くには、(ショートカットキーは Shift+F4)、Firefox の「ツール」メニューにある「Web 開発」から「スクラッチパッド」を選んでください。別のウィンドウが表示されますが、これはブラウザ内で JavaScript を書いて実行できるエディタになっています。スクリプトを保存し、またロードすることもできます。

Hello world

JavaScript を書き始めるにあたり、スクラッチパッドを開いて、初めての JavaScript コード "Hello world" を書いてみましょう:

function greetMe(yourName) {
  alert("Hello " + yourName);
}

greetMe("World");

ブラウザでどのような結果になるかを確かめるには、パッド内のコードを選択し Ctrl+R を押してみましょう!

ガイドの次のページでは、より複雑なアプリケーションが書けるように、JavaScript の構文と言語の特徴を紹介します。

ドキュメントのタグと貢献者

タグ: 
Contributors to this page: x2357, isomura-bon, teoli, Shuyas
最終更新者: x2357,
サイドバーを隠す