JavaScript (JS) は軽量で、軽量なインタプリタ型、あるいは JITコンパイルされる、 第一級関数を備えたプログラミング言語です。Web ページでよく使用されるスクリプト言語として知られ、node.js や Apache CouchDB や Adobe Acrobat といった多くの非ブラウザー環境においても使用されています。 JavaScript は プロトタイプベース で、動的型付けを持ち、そしてオブジェクト指向、命令形、宣言的 (例えば関数プログラミング) といったスタイルをサポートするマルチパラダイムのスクリプト言語です。詳しくは JavaScript についてをお読みください。
この章では JavaScript 言語自体について、すなわち Web ページ他の環境に限定されないコアの部分について専門に解説しています。Web ページ特有の API 群の情報を得たい場合は Web APIs と DOM を参照してください。
JavaScript の標準仕様は ECMAScript と呼ばれています。2012年以降、全てのモダンブラウザーは ECMAScript 5.1 を完全にサポートしています。過去のブラウザも、少なくとも ECMAScript 3 はサポートしています。2015 年 6 月 17 日、ECMA International はECMAScript のメジャーバージョン 6 を策定しました。このバージョンは公式には ECMAScript 2015 と呼ばれていますが、最初は ECMAScript 6 や ES6 と呼ばれます。それ以降、ECMAScript 標準は年単位でリリースされています。このドキュメントは最新のドラフトバージョン、現在は ECMAScript 2018 を参照しています。
JavaScript をプログラミング言語 Java と混同しないでください. Java と JavaScript は両方ともアメリカやその他の国においてオラクルの商標または登録商標です。しかし、この 2 つのプログラミング言語は非常に異なる構文、セマンティック、利用形態を持っています。
チュートリアル
ガイドやチュートリアルを使って JavaScript をプログラムする方法を学びましょう。
完全な初心者向け
JavaScript について学びたいと思っているが、JavaScript あるいはプログラミングについて過去に経験がないのであれば、JavaScript 学習エリアに向かいましょう。次のモジュールが利用可能です。
- JavaScript の第一歩
- 変数、文字列、数値、配列のような JavaScript の鍵となる機能の考察に加え、 「JavaScript とは何か」「何に似ているか」「何ができるか」といった基本的な質問に答えます。
- JavaScript の構成要素
- 条件分岐、ループ、関数、イベントなどのよく目にするタイプのコードブロックに注意を向け、引き続き JavaScript の鍵となる基本機能について説明します。
-
JavaScript ガイド
- JavaScript ガイド
- JavaScript、または他のプログラミング言語の経験がある人に向けた、JavaScript のより詳細なガイド。
中級者向け
- JavaScript オブジェクトの紹介
- 言語に関する知識をさらに深め、より効率的なコードを書きたいのであれば、JavaScript のオブジェクト指向の性質を理解することは重要です。そこで、私たちが提供するこのモジュールが役立つでしょう。
- クライアントサイド Web API
- Web サイトや Web アプリケーションのためにクライアントサイドの JavaScript を記述するとき、API — いろいろなブラウザの外観やWeb サイトが実行しているOSを操作したり、他の Web サイト・サービスからのデータまでも操作するためのインターフェース — を使い始める前に、そう遠くへは行かないでしょう。このモジュールでは 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 における演算子の挙動、そして演算子の優先順位などについて学びましょう。- 文と宣言
var、let、const、function、return、if...else、try-catch、switch、do-while、for、for-in、for-ofなどの 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 ファイルを編集し、ライブでの実行結果やファイル構造を取得することができます。
JavaScriptコミュニティに参加してください
- IRC: #js (さらに詳しく)
- ES discuss: esdiscuss.org
- SpiderMonkey: Project page
- Twitter: @SpiderMonkeyJS