| title | JavaScript | ||
|---|---|---|---|
| slug | Web/JavaScript | ||
| l10n |
|
JavaScript (JS) は軽量でインタープリター型(あるいは{{Glossary("Just_In_Time_Compilation", "実行時コンパイルされる")}}){{Glossary("First-class Function", "第一級関数")}}を備えたプログラミング言語です。ウェブページでよく使用されるスクリプト言語として知られ、多くのブラウザー以外の環境、例えば {{Glossary("Node.js")}} や Apache CouchDB や Adobe Acrobat などでも使用されています。 JavaScript はプロトタイプベースで、ガベージコレクションのある、動的な言語であり、命令型、関数型、オブジェクト指向など、複数のパラダイムに対応しています。
JavaScript の動的な機能には、ランタイムオブジェクトの構築、可変引数リスト、関数変数、動的スクリプトの作成(eval で)、オブジェクトの内包(for...in と Object ユーティリティで)、ソースコードの復元(JavaScript 関数はそのソーステキストを格納し toString() で復元可能)が含まれます。
この章では JavaScript 言語自体について、すなわちウェブページや他のホスト環境に限定されないコアの部分に限定して解説しています。ウェブページ特有の {{Glossary("API")}} 群の情報を得たい場合は Web API と {{Glossary("DOM")}} を参照してください。
JavaScript の規格書は ECMAScript Language Specification および ECMAScript Internationalization API specification (ECMA-402) です。私たちは、あるブラウザーが機能を実装するとすぐに、それを文書化するように努めています。このことは、 ECMAScript の新しい機能に関するいくつかの提案がすでにブラウザーに実装されている場合、MDN の記事の文書や例ではそれらの新しい機能のいくつかを使用する可能性があることを示しています。ほとんどの場合、これはステージ 3 と 4 の間で起こることで、通常は仕様が正式に公開される前です。
JavaScript をプログラミング言語 Java と混同しないでください。 JavaScript は「インタープリター版の Java」では ありません。 "Java" と "JavaScript" は両方ともアメリカやその他の国においてオラクルの商標または登録商標です。しかし、この 2 つのプログラミング言語は構文、セマンティック、利用形態が大きく異なります。
コア言語機能の JavaScript ドキュメントは(多くの部分は純粋な ECMAScript)、以下のものがあります。
JavaScript 仕様と関連技術に関する詳細は、 JavaScript 技術概要を参照してください。
ウェブ開発の学習コアモジュールは、現代的な、最新の JavaScript の基礎を扱います。
- 初めてのウェブサイト: 操作の追加
- : この記事は、ウェブ開発がまったく初めての方を対象に、JavaScript とは何か、そしてその使用方法について簡単に解説します。
- JavaScript による動的スクリプティング
- : このモジュールでは、JavaScript 言語の中核となる基本要素に加え、関連する重要なトピックにも焦点を当てています。これらのトピックを学ぶことで、しっかりとした基礎を築くことができます。
- JavaScript フレームワークとライブラリー
- : JavaScript フレームワークは、現代のフロントエンドウェブ開発において不可欠な要素であり、スケーラブルでインタラクティブなウェブアプリケーションを構築するための、実績のあるツールを開発者に提供します。多くの現代企業では、フレームワークを標準的なツールセットの一部として採用しているため、現在ではフロントエンド開発の求人の多くでフレームワークの経験が要求されます。一連の記事は、フレームワークの学習を始めるための、分かりやすい入門ガイドとなります。
- JavaScript ガイド
- : JavaScript や他の言語でのプログラミング経験がある方を対象とした、より詳細な JavaScript 言語のガイドです。
- 高度な JavaScript オブジェクト
- : 言語に関する知識をさらに深め、より効率的なコードを書きたいのであれば、JavaScript のオブジェクト指向の性質を理解することは重要です。このため、私たちが提供するこのモジュールが役立つでしょう。
- 非同期 JavaScript
- : 非同期 JavaScript について、なぜ重要なのか、どのように使用してサーバーからのリソースの読み取りなどのブロックが発生する可能性がある操作を効果的に扱うことができるのかを説明します。
- クライアント側ウェブ API
- : API とは何か、開発作業でよく見かける、最も一般的な API の一部の使い方を説明します。
- JavaScript 言語概要
- : 他のプログラミング言語から来た人がスピードアップするために、 JavaScript の基本的な構文と意味づけの概要を説明します。
- JavaScript のデータ構造
- : JavaScript で利用可能なデータ構造の概要です。
- 等値比較と同一性
- : JavaScript には 3 つの異なる値の比較演算子があります。
===を用いる厳格な等値性比較、==を用いる緩い等値性比較、そして {{jsxref("Object.is()")}} メソッドです。
- : JavaScript には 3 つの異なる値の比較演算子があります。
- プロパティの列挙と所有権
- : オブジェクトプロパティのグループを1つずつ訪問する様々なメソッドが、プロパティの列挙可能性と所有権をどのように処理するかです。
- クロージャ
- : クロージャとは、関数とその関数が宣言された字句環境の組み合わせのことです。
- 継承とプロトタイプチェーン
- : よく誤解されたり過小評価されたりしているプロトタイプベースの継承に対する説明です。
- メモリー管理
- : JavaScript におけるメモリーのライフサイクルとガベージコレクションです。
完全な JavaScript リファレンスドキュメントをご覧ください。
- 標準オブジェクト
- : 標準組み込みオブジェクトである {{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Error")}}, {{jsxref("Function")}}, {{jsxref("JSON")}}, {{jsxref("Math")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("RegExp")}}, {{jsxref("String")}}, {{jsxref("Map")}}, {{jsxref("Set")}}, {{jsxref("WeakMap")}}, {{jsxref("WeakSet")}} などについて理解しましょう。
- 式と演算子
- : JavaScript の演算子である {{jsxref("Operators/instanceof", "instanceof")}}, {{jsxref("Operators/typeof", "typeof")}}, {{jsxref("Operators/new", "new")}}, {{jsxref("Operators/this", "this")}} などの挙動、そして演算子の優先順位などについて学びましょう。
- 文と宣言
- : {{jsxref("Statements/do...while", "do-while")}}, {{jsxref("Statements/for...in", "for-in")}}, {{jsxref("Statements/for...of", "for-of")}}, {{jsxref("Statements/try...catch", "try-catch")}}, {{jsxref("Statements/let", "let")}}, {{jsxref("Statements/var", "var")}}, {{jsxref("Statements/const", "const")}}, {{jsxref("Statements/if...else", "if-else")}}, {{jsxref("Statements/switch", "switch")}} などの JavaScript の文やキーワードがどのように機能するか学びましょう。
- 関数
- : JavaScript の関数を使ってアプリケーションを開発する方法を学びましょう。
- クラス
- : JavaScript のクラスはオブジェクト指向プログラミングを行う上で最適な方法です。