JavaScript

JavaScript (JS) は軽量で、軽量なインタープリター型、あるいは実行時コンパイルされる、第一級関数を備えたプログラミング言語です。ウェブページでよく使用されるスクリプト言語として知られ、多くの非ブラウザー環境、例えば Node.jsApache CouchDBAdobe Acrobat などでも使用されています。 JavaScript は プロトタイプベース で、シングルスレッドで、動的型付けを持ち、そしてオブジェクト指向、命令形、宣言的 (例えば関数プログラミング) といったスタイルをサポートするマルチパラダイムのスクリプト言語です。詳しくは JavaScript についてをお読みください。

この章では JavaScript 言語自体について、すなわちウェブページや他のホスト環境に限定されないコアの部分に限定して解説しています。ウェブページ特有の API 群の情報を得たい場合は Web APIDOM を参照してください。

JavaScript の標準仕様は ECMAScript と呼ばれています。2012年以降、すべてのモダンブラウザーは ECMAScript 5.1 を完全にサポートしています。過去のブラウザーも、少なくとも ECMAScript 3 はサポートしています。2015 年 6 月 17 日、ECMA International は ECMAScript のメジャーバージョン 6 を策定しました。このバージョンは公式には ECMAScript 2015 と呼ばれていますが、最初は ECMAScript 6 や ES6 と呼ばれます。それ以降、 ECMAScript 標準は年単位でリリースされています。このドキュメントは最新のドラフトバージョン、現在は ECMAScript 2020 を参照しています。

JavaScript をプログラミング言語 Java と混同しないでください. Java と JavaScript は両方ともアメリカやその他の国においてオラクルの商標または登録商標です。しかし、この 2 つのプログラミング言語は構文、セマンティック、利用形態が大きく異なります。

チュートリアル

ガイドやチュートリアルを使って JavaScript をプログラムする方法を学びましょう。

完全な初心者向け

JavaScript について学びたいと思っているが、JavaScript あるいはプログラミングについて過去に経験がないのであれば、JavaScript 学習エリアに向かいましょう。次のモジュールが利用可能です。

JavaScript の第一歩
変数、文字列、数値、配列のような JavaScript の鍵となる機能の考察に加え、「JavaScript とは何か」「何に似ているか」「何ができるか」といった基本的な質問に答えます。
JavaScript の構成要素
条件分岐、ループ、関数、イベントなどのよく目にするタイプのコードブロックに注意を向けつつ、引き続き JavaScript の鍵となる基本機能について説明します。
JavaScript オブジェクトの紹介
言語に関する知識をさらに深め、より効率的なコードを書きたいのであれば、JavaScript のオブジェクト指向の性質を理解することは重要です。このため、私たちが提供するこのモジュールが役立つでしょう。

JavaScript ガイド

JavaScript ガイド
JavaScript または他のプログラミング言語の経験がある人に向けた、JavaScript 言語のより詳細なガイド。

中級者向け

クライアントサイド Web API
ウェブサイトやウェブアプリケーションのためにクライアントサイドの JavaScript を記述するとき、API — いろいろなブラウザーの外観やウェブサイトが実行している OS を操作したり、他のウェブサイト・サービスからのデータまでも操作するためのインターフェイス — を使い始めるまでは、そう遠くへは行けません。このモジュールでは API とは何か、開発作業の中でしばしば出遭う最も一般的な API をどのように使うかについて、説明します。
JavaScript 「再」入門
JavaScript なら知ってるよ、と思っている方々に送る概説。
JavaScript のデータ構造
JavaScript で利用できるデータ構造の概覧。
等値比較と同一性
JavaScript には 3 つの異なる値の比較演算子があります: === を使う厳格な等値性比較、== を使う寛容な等値性比較、そして Object.is() メソッド。
クロージャ

クロージャは「関数」と「関数が作成された環境」を組み合わせたものです。

上級者向け

継承とプロトタイプチェーン
よく誤解されたり過小評価されたりしているプロトタイプベースの継承に対する説明。
Strict モード
Strict モードは変数を初期化前に使えないようにします。これは ECMAScript 5 の厳格版で、速いパフォーマンスとより簡単なデバッグのためのものです。
JavaScript 型付き配列
JavaScript の型付き配列は未加工のバイナリーデータにアクセスするメカニズムを提供します。
メモリ管理
JavaScript におけるメモリーのライフサイクルとガベージコレクション。
同時実行モデルとイベントループ
JavaScript は「イベントループ」に基づく同時実行モデルを持っています。

リファレンス

すべてを網羅した JavaScript リファレンス ドキュメントを閲覧できます。

標準オブジェクト
Array, Boolean, Date, Error, Function, JSON, Math, Number, Object, RegExp, String, Map, Set, WeakMap, WeakSet などの標準ビルトインオブジェクトについて理解しましょう。
式と演算子
instanceof, typeof, new, this といった JavaScript における演算子の挙動、そして演算子の優先順位などについて学びましょう。
文と宣言
do-while, for-in, for-of, try-catch, let, var, const, if...else, switch などの JavaScript の文やキーワードがどのように機能するか学びましょう。
関数
アプリケーション開発において JavaScript の関数を扱う方法については、こちらをご覧ください。

ツールとリソース

JavaScript コードを書き、デバッグするのに役立つツールたち。

Firefox 開発ツール
スクラッチパッドWeb コンソールJavaScript プロファイラデバッガなど。
JavaScript シェル
ちょっとした JavaScript のコードを簡単にテストできる JavaScript シェル。
TogetherJS
簡単にリアルタイムコラボレーションを行えるライブラリ。TogetherJS をサイトに追加することで、ユーザーがウェブサイト上でリアルタイムに助け合えるようになります。
Stack Overflow
"JavaScript" のタグが付いた Stack Overflow の質問一覧ページ
(訳注: 日本語情報となると Qiita がよいかもしれません。)
JavaScript のバージョンノートとリリースノート
JavaScript 機能の歴史と実装状況について。
JSFiddle
JavaScript、CSS、HTML を編集し、リアルタイムで実行結果を表示できるサイト。外部リソースを使い、オンライン上でチームと共同作業が行えます。
Plunker
Plunker は Web 開発のアイデアを作成、共同作業、共有するためのオンラインコミュニティです。JavaScript や CSS、HTML ファイルを編集し、ライブでの実行結果やファイル構造を取得することができます。
JSBin

JS Binは、オープンソースの共同ウェブ開発デバッグツールです。

Codepen

Codepen はライブの結果の実行環境を使用した、もう一つの共同開発ウェブ開発ツールです。