JavaScript (JS) は軽量で、インタプリタ型の、第一級関数を備えたプログラミング言語です。Web ページでよく使用されるスクリプト言語として知られ、node.js や Apache CouchDB といった多くの非ブラウザ環境においても使用されています。 JavaScript は プロトタイプベースで、動的型付けを持ち、そしてオブジェクト指向、命令形、そして関数プログラミングといったスタイルをサポートするマルチパラダイムのスクリプト言語です。詳しくは JavaScript についてをお読みください。
このセクションでは JavaScript 言語自体について、すなわち Web ページ他の環境に限定されないコアの部分について専門に解説しています。Web ページ特有の {{Glossary("API","API")}} 群の情報を得たい場合は Web APIs と DOM を参照してください。
JavaScript の標準仕様は ECMAScript と呼ばれています。2012年現在、全てのモダンブラウザは ECMAScript 5.1 を完全にサポートしています。一、二世代前のブラウザも、少なくとも ECMAScript 3 はサポートしています。2015 年 6 月 17 日、ECMAScript のメジャーバージョン 6 が策定されました。このバージョンは公式には ECMAScript 2015 と呼ばれていますが、通常は ECMAScript 6 や ES6 と呼ばれます。ご覧のドキュメントでは ECMAScript 6、そして次期バージョンの ECMAScript (ES2016) で公表されている機能の一部についてカバーしています。
JavaScript をプログラミング言語 Java と混同しないでください. Java と JavaScript は両方ともアメリカやその他の国においてオラクルの商標または登録商標です。しかし、この 2 つのプログラミング言語は非常に異なる構文、セマンティック、利用形態を持っています。
チュートリアル
ガイドやチュートリアルを使って JavaScript をプログラムする方法を学びましょう。
初心者向け
- JavaScript ガイド
- JavaScript が初めてなら、このガイドが言語理解の手引となるでしょう。
- JavaScript 技術概説
- Web ブラウザにおける JavaScript 全体を見渡す入門編。
- オブジェクト指向 JavaScript 入門
- JavaScript によるオブジェクト指向プログラミングの概念を説明する入門編。
中級者向け
- JavaScript 「再」入門
- JavaScript なら知ってるよ、と思っている方々に送る概説。
- JavaScript のデータ構造
- JavaScript で利用できるデータ構造の概覧.
- 等値比較と同一性
- JavaScript には3つの異なる値の比較演算子があります:
===
を使う厳格な等値性比較、==
を使う寛容な等値性比較、そして {{jsxref("Global_Objects/Object/is", "Object.is()")}} メソッド。
上級者向け
- 継承とプロトタイプチェーン
- プロトタイプベースの継承にまつわるよくある誤解と過小評価に対する説明。
- Strict モード
- JavaScript の厳格版。
- JavaScript 型付き配列
- JavaScript の型付き配列は未加工のバイナリデータにアクセスするメカニズムを提供します。
- メモリ管理
- JavaScript におけるメモリのライフサイクルとガベージコレクション。
- 並列モデルとイベントループ
- JavaScript は「イベントループ」に基づく並列モデルを持っています。
リファレンス
すべてを網羅した JavaScript リファレンス ドキュメントを閲覧できます。
- 標準オブジェクト
- {{jsxref("Array")}}、 {{jsxref("Boolean")}}、 {{jsxref("Date")}}, {{jsxref("Error")}}、 {{jsxref("Function")}}、 {{jsxref("JSON")}}、 {{jsxref("Math")}}、 {{jsxref("Number")}}、 {{jsxref("Object")}}、 {{jsxref("RegExp")}}、 {{jsxref("String")}}、 {{jsxref("Map")}}、 {{jsxref("Set")}}、 {{jsxref("WeakMap")}}、 {{jsxref("WeakSet")}} などといった標準ビルトインオブジェクトについて理解しましょう。
- 式と演算子
- {{jsxref("Operators/instanceof", "instanceof")}}、 {{jsxref("Operators/typeof", "typeof")}}、 {{jsxref("Operators/new", "new")}}、 {{jsxref("Operators/this", "this")}} といった JavaScript における演算子の挙動、そして演算子の優先順位などについて学びましょう。
- 文と宣言
- {{jsxref("Statements/var", "var")}}、{{jsxref("Statements/let", "let")}}、 {{jsxref("Statements/const", "const")}}、 {{jsxref("Statements/function", "function")}}、{{jsxref("Statements/return", "return")}}、 {{jsxref("Statements/if...else", "if...else")}}、{{jsxref("Statements/try...catch", "try-catch")}}、 {{jsxref("Statements/switch", "switch")}}、{{jsxref("Statements/do...while", "do-while")}}、{{jsxref("Statements/for", "for")}}、 {{jsxref("Statements/for...in", "for-in")}}、 {{jsxref("Statements/for...of", "for-of")}} などの JavaScript の文やキーワードがどのように機能するか学びましょう。
- 関数
- アプリケーション開発においてJavaScriptの関数を扱う方法については、こちらをご覧ください。
ツールとリソース
JavaScript コードを書き、デバッグするのに役立つツールたち。
- Firefox 開発ツール
- スクラッチパッド, Web コンソール, JavaScript プロファイラ, デバッガなど。
- Firebug
- あらゆる Web ページの CSS、 HTML、そして JavaScript をライブで編集、デバッグ、モニタリングできます。
- JavaScript シェル
- ちょっとした JavaScript のコードを簡単にテストできる JavaScript シェル。
- TogetherJS
-
簡単にリアルタイムコラボレーションを行えるライブラリ。
- Stack Overflow
- "JavaScript" のタグが付いた Stack Overflow の質問一覧ページ。
- JavaScript のバージョンとリリースノート
- JavaScript 機能の歴史と実装状況について。
- JSFiddle
- JavaScript、CSS、HTML を編集し、リアルタイムで実行結果を表示できるサイト。外部リソースを使い、オンライン上でチームと共同作業が行えます。
{{CommunityBox("JavaScript", "js-engine.internals", "mozilla.dev.tech.js-engine.internals", "js", "ES discuss|https://esdiscuss.org/|esdiscuss.org|ECMAScript standard discussion mailing list||SpiderMonkey|https://wiki.mozilla.org/JavaScript|Project page|Contribute to the JavaScript Engine||Twitter|https://twitter.com/SpiderMonkeyJS|@SpiderMonkeyJS|SpiderMonkey updates on Twitter")}}