HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
View in English Always switch to English
HTML がウェブページの構造と内容を定義し、CSS が書式と外観を定義しているのに対し、JavaScript はインタラクティブ機能をウェブページに追加し、豊かなウェブアプリケーションを作成します。
しかしながら、ウェブブラウザーの文脈で解釈されるこの「JavaScript」という包括的用語は、まったく異なる複数の要素を含んでいます。その要素とは、中核となるプログラミング言語(ECMAScript)、もう一つは DOM(Document Object Model)を含んだ Web API 群です。
JavaScript の中核となる言語は ECMAScript という名前の言語として ECMA TC39 委員会で標準化されています。
このコア言語はまた、node.js といったブラウザー以外の環境でも使用されています。
とりわけ、ECMAScript は以下のものを定義しています。
throw
try/catch
window
parseInt
parseFloat
decodeURI
encodeURI
JSON
Math
Array.prototype
2016 年 10 月以降、主要ウェブブラウザーの現在のバージョンは、ECMAScript 5.1 と ECMAScript 2015(ES6 としても知られる)を実装していますが、(まだ使用中の)古いバージョンは ECMAScript 5 のみが実装されています。
ECMAScript の第 6 版は、ECMA 総会で 2015 年 6 月 17 日に正式に承認され、標準として公開されました。それ以来、ECMAScript の版は毎年発行されています。
ECMAScript 国際化 API 仕様は Ecma TC39 によって標準化された ECMAScript 言語仕様の増補仕様です。国際化 API は JavaScript アプリケーションのための照合機能(文字列比較)、数値フォーマット、日時フォーマットを提供し、アプリケーション上で言語を選択して必要に応じて各種機能を調整可能にします。標準仕様は 2012 年 12 月に承認されました。ブラウザーでの実装状況は Intl オブジェクトのドキュメントにて随時更新されています。国際化標準は昨今、毎年承認されてブラウザーは常に実装を改良しています。
Intl
WebIDL 仕様は DOM 技術と ECMAScript とを繋ぐ機能を提供します。
Document Object Model (DOM) は HTML、XHTML、XML ドキュメント内のオブジェクトを表し、その情報をやりとりするための、クラスプラットフォームな言語に依存しない取り決めです。DOM ツリー内のオブジェクトはそのオブジェクトのメソッドを使って処理、操作できます。W3C によって Document Object Model の中核部分が標準化されており、これにより HTML や XML ドキュメントをオブジェクトとして抽象化して言語に依存しないインターフェイスを定義し、その抽象化したものを取り扱うメカニズムも定義されます。DOM によって定義されているものには、次のものがあります :
Node
Element
DocumentFragment
Document
DOMImplementation
Event
EventTarget
ECMAScript から見た場合に、DOM 仕様で定義されるオブジェクトのことを「ホストオブジェクト」と呼びます。
ウェブのマークアップ言語である HTML は、DOM に関しても規定しています。HTML は DOM Core 内で定義された抽象概念の上位レイヤーを形成し、更に要素の意味も定義しています。HTML DOM には HTML 要素の className プロパティ、あるいは document.body といった API などが含まれます。
className
document.body
HTML 仕様はドキュメント上の制約事項についても定義しています。例えば、「順序なしリストを意味する ul 要素のすべての子は、そのリストアイテムを意味する li 要素でなければならない」などです。一般に、標準で定義されていない要素や属性を使用することは禁止されています。
ul
li
Document オブジェクトや、Window オブジェクトや、その他の DOM 要素についてお探しであれば、DOM ドキュメントをご覧ください。
Window
setTimeout
setInterval
<canvas>
どのウェブ開発者も「DOM は面倒である」ということに悩まされてきました。ブラウザーのサポートの統一性はその機能によって大きく異なります。この状況の主な理由は、DOM の重要な機能の多くが、仮にあったとしてもその仕様が非常に不明確であったという事実です。また様々なウェブブラウザーが、例えば Internet Explorer によるイベントモデルの使用実態と一致させようと、互換性の無い機能を追加してきました。2011 年 6 月以降、W3C と特に WHATWG が相互運用性を改善するために細部にわたって古い機能を定義しており、これらの仕様に基づいて、ブラウザーへの実装は日々改善されています。
ブラウザー間の互換性保持のための一般的な (おそらく最も信頼できるわけではない) アプローチのひとつとして、JavaScript のライブラリーの使用が挙げられます。これらのライブラリーは DOM の機能を抽象化し、異なるブラウザーでこれらの API が同じように動作するようにします。最も広く使われているフレームワークには、jQuery や prototype、YUI があります。