JavaScript

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

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

JavaScript の標準仕様は ECMAScript Language Specification および ECMAScript Internationalization API specification (ECMA-402) です。 MDN 至る所にある JavaScript のドキュメントは ECMA-262 と ECMA-402 の最新の草稿に基づいています。また、 ECMAScript の新機能の提案 の一部がすでにブラウザーに実装されている場合、 MDN の記事のドキュメントや例には、その新機能の一部が使用されることがあります。

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

フロントエンドのウェブ開発者を目指している方へ

ゴールに向かって頑張るために必要な情報をまとめたコースをご用意しました。

始めましょう

チュートリアル

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

完全な初心者向け

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

JavaScript の第一歩

変数、文字列、数値、配列のような JavaScript の基本機能の解説に加え、「JavaScript とは何か」「何に似ているか」「何ができるか」といった基本的な質問に答えます。

JavaScript の構成要素

引き続き JavaScript の基本機能について、条件分岐、ループ、関数、イベントなどのよく目にするタイプのコードブロックに注意を向けつつ説明します。

JavaScript のオブジェクトの紹介

言語に関する知識をさらに深め、より効率的なコードを書きたいのであれば、JavaScript のオブジェクト指向の性質を理解することは重要です。このため、私たちが提供するこのモジュールが役立つでしょう。

非同期 JavaScript

非同期 JavaScript について、なぜ重要なのか、どのように使用してサーバーからのリソースの読み取りなどのブロックが発生する可能性がある操作を効果的に扱うことができるのかを説明します。

クライアント側ウェブ API

API とは何か、開発作業でよく見かける、最も一般的な API の一部の使い方を説明します。

JavaScript ガイド

JavaScript ガイド

JavaScript や他の言語でのプログラミング経験がある方を対象とした、より詳細な JavaScript 言語のガイドです。

中級者向け

クライアント側の JavaScript フレームワークの理解

JavaScript フレームワークは、最新のフロントエンドウェブ開発に欠かせないもので、拡張性のある双方向のウェブアプリケーションを構築するための、試行錯誤されたツールを開発者に提供します。幾つかの有名なツールについて取り扱うチュートリアルに移動する前に、クライアントサイドのフレームワークがどのように動作するのか、自分のツールセットにどのように適合させるか、についての基本的な背景知識を提供します。

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 などについて理解しましょう。

式と演算子

JavaScript の演算子である instanceof, typeof, new, this などの挙動、そして演算子の優先順位などについて学びましょう。

文と宣言

do-while, for-in, for-of, try-catch, let, var, const, if-else, switch などの JavaScript の文やキーワードがどのように機能するか学びましょう。

関数

JavaScript の関数を使ってアプリケーションを開発する方法を学びましょう。

ツールとリソース

JavaScript のコードを書いたりデバッグしたりするのに役立つツールです。

Firefox 開発ツール

ウェブコンソールJavaScript プロファイラーデバッガーなど。

JavaScript シェル

JavaScript シェルで、 JavaScript コードの断片をすばやくテストすることができます。

Learn JavaScript

ウェブ開発者を目指す方のための優れた教材です。短いレッスンとインタラクティブなテスト、自動評価によるガイドにより、インタラクティブな環境で JavaScript を学ぶことができます。最初の 40 レッスンは無料で、全コースはわずかな一回の支払いで利用できます。

TogetherJS

コラボレーションが簡単に。あなたのサイトに TogetherJS を追加することで、ユーザーはウェブサイト上でリアルタイムに助け合うことができます。

Stack Overflow

"JavaScript" でタグ付けされた Stack Overflow の質問です。
(訳注: 日本語情報となると Qiita がよいかもしれません。)

JSFiddle

JavaScript、CSS、HTML を編集し、リアルタイムで実行結果を表示できるサイト。外部リソースを使い、オンライン上でチームと共同作業が行えます。

Plunker

Plunker はウェブ開発のアイデアを作成、共同作業、共有するためのオンラインコミュニティです。JavaScript や CSS、HTML ファイルを編集し、ライブでの実行結果やファイル構造を取得することができます。

JSBin

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

Codepen

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

StackBlitz

StackBlitz はもう一つの実行・デバッグツールであり、 React や Angular などを使用したアプリケーションのスタック全体をホスティングして配置することができます。

RunJS

RunJS はデスクトップの遊び場/お絵描きツールで、ライブの結果を提供し、 Node と Browser の両方の API にアクセスすることができます。