aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript/index.html
blob: 6e2fd83729090127dca3d8003cc46f5d60f5149e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
---
title: JavaScript
slug: Web/JavaScript
tags:
  - JavaScript
  - Landing
  - Landing page
  - 'l10n:priority'
  - 学習
translation_of: Web/JavaScript
---
<div>{{JsSidebar}}</div>

<p class="summary"><span class="seoSummary"><strong>JavaScript</strong> (<strong>JS</strong>) は軽量で、軽量なインタープリター型、あるいは<a href="https://ja.wikipedia.org/wiki/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9">実行時</a>コンパイルされる、{{Glossary("First-class Function", "第一級関数")}}を備えたプログラミング言語です。ウェブページでよく使用されるスクリプト言語として知られ、<a class="external" href="https://ja.wikipedia.org/wiki/JavaScript#その他の環境での利用">多くの非ブラウザー環境</a>、例えば {{Glossary("Node.js")}}<a class="external" href="https://couchdb.apache.org/">Apache CouchDB</a><a class="external" href="http://www.adobe.com/devnet/acrobat/javascript.html">Adobe Acrobat</a> などでも使用されています。JavaScript は {{Glossary("Prototype-based programming", "プロトタイプベース")}} で、シングルスレッドで、動的型付けを持ち、そしてオブジェクト指向、命令形、宣言的 (例えば関数プログラミング) といったスタイルをサポートするマルチパラダイムのスクリプト言語です。詳しくは <a href="/ja/docs/Web/JavaScript/About_JavaScript">JavaScript について</a>をお読みください。</span></p>

<p>この章では JavaScript 言語自体について、すなわちウェブページや他のホスト環境に限定されないコアの部分に限定して解説しています。ウェブページ特有の {{Glossary("API")}} 群の情報を得たい場合は <a href="/ja/docs/Web/API">Web API</a>{{Glossary("DOM")}} を参照してください。</p>

<p>JavaScript の標準仕様は <a href="/ja/docs/Web/JavaScript/Language_Resources">ECMAScript</a> と呼ばれています。2012年以降、すべての<a href="https://kangax.github.io/compat-table/es5/">モダンブラウザー</a>は ECMAScript 5.1 を完全にサポートしています。過去のブラウザーも、少なくとも ECMAScript 3 はサポートしています。2015 年 6 月 17 日、<a href="https://www.ecma-international.org/">ECMA International</a> は ECMAScript のメジャーバージョン 6 を策定しました。このバージョンは公式には ECMAScript 2015 と呼ばれていますが、最初は ECMAScript 6 や ES6 と呼ばれます。それ以降、ECMAScript 標準は年単位でリリースされています。このドキュメントは最新のドラフトバージョン、現在は <a href="https://tc39.github.io/ecma262/">ECMAScript 2020</a> を参照しています。</p>

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

<div class="in-page-callout webdev">
<h3 id="Looking_to_become_a_front-end_web_developer" name="Looking_to_become_a_front-end_web_developer">フロントエンドのウェブ開発者になりたいですか?</h3>

<p>目標に向かって頑張るために必要な情報をまとめたコースをご用意しました。</p>

<p><a class="cta primary" href="/ja/docs/Learn/Front-end_web_developer">開始する</a></p>
</div>

<div class="column-container">
<div class="column-half">
<h2 id="Tutorials" name="Tutorials">チュートリアル</h2>

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

<h3 id="For_complete_beginners" name="For_complete_beginners">完全な初心者向け</h3>

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

<dl>
 <dt><a href="/ja/docs/Learn/JavaScript/First_steps">JavaScript の第一歩</a></dt>
 <dd>変数、文字列、数値、配列のような JavaScript の鍵となる機能の考察に加え、「JavaScript とは何か」「何に似ているか」「何ができるか」といった基本的な質問に答えます。</dd>
 <dt><a href="/ja/docs/Learn/JavaScript/Building_blocks">JavaScript の構成要素</a></dt>
 <dd>条件分岐、ループ、関数、イベントなどのよく目にするタイプのコードブロックに注意を向けつつ、引き続き JavaScript の鍵となる基本機能について説明します。</dd>
 <dt><a href="/ja/docs/Learn/JavaScript/Objects">JavaScript オブジェクトの紹介</a></dt>
 <dd>言語に関する知識をさらに深め、より効率的なコードを書きたいのであれば、JavaScript のオブジェクト指向の性質を理解することは重要です。このため、私たちが提供するこのモジュールが役立つでしょう。</dd>
 <dt><a href="/ja/docs/Learn/JavaScript/Asynchronous">非同期 JavaScript</a></dt>
 <dd>非同期 JavaScript について、なぜ重要なのか、どのように使用してサーバーからのリソースの読み取りなどのブロックが発生する可能性がある操作を効果的に扱うことができるのかを説明します。</dd>
 <dt><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs">クライアント側ウェブ API</a></dt>
 <dd>API とは何か、開発作業でよく見かける、最も一般的な API の一部の使い方を説明します。</dd>
</dl>

<h3 id="JavaScript_guide" name="JavaScript_guide">JavaScript ガイド</h3>

<dl>
 <dt><a href="/ja/docs/Web/JavaScript/Guide">JavaScript ガイド</a></dt>
 <dd>JavaScript または他のプログラミング言語の経験がある人に向けた、JavaScript 言語のより詳細なガイド。</dd>
</dl>

<h3 id="Intermediate" name="Intermediate">中級者向け</h3>

<dl>
 <dt><a href="https://wiki.developer.mozilla.org/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks">クライアントサイドの JavaScript フレームワークの理解</a></dt>
 <dd>JavaScript フレームワークは、最新のフロントエンドウェブ開発に欠かせないもので、拡張性のある双方向のウェブアプリケーションを構築するための、試行錯誤されたツールを開発者に提供します。幾つかの有名なツールについて取り扱うチュートリアルに移動する前に、クライアントサイドのフレームワークがどのように動作するのか、自分のツールセットにどのように適合させるか、についての基本的な背景知識を提供します。</dd>
</dl>

<dl>
 <dt></dt>
 <dt><a href="/ja/docs/Web/JavaScript/A_re-introduction_to_JavaScript">JavaScript 「再」入門</a></dt>
 <dd>JavaScript なら知ってるよ、と<em>思っている</em>方々に送る概説。</dd>
</dl>

<dl>
 <dt><a href="/ja/docs/Web/JavaScript/Data_structures">JavaScript のデータ構造</a></dt>
 <dd>JavaScript で利用できるデータ構造の概覧。</dd>
 <dt><a href="/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness">等値比較と同一性</a></dt>
 <dd>JavaScript には 3 つの異なる値の比較演算子があります: <code>===</code> を使う厳格な等値性比較、<code>==</code> を使う寛容な等値性比較、そして {{jsxref("Global_Objects/Object/is", "Object.is()")}} メソッド。</dd>
 <dt><a href="/ja/docs/Web/JavaScript/Closures">クロージャ</a></dt>
 <dd>
 <p>クロージャは「関数」と「関数が作成された環境」を組み合わせたものです。</p>
 </dd>
</dl>

<h3 id="Advanced" name="Advanced">上級者向け</h3>

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

<div class="column-half">
<h2 id="Reference" name="Reference">リファレンス</h2>

<p>すべてを網羅した <a href="/ja/docs/Web/JavaScript/Reference">JavaScript リファレンス</a> ドキュメントを閲覧できます。</p>

<dl>
 <dt><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects">標準オブジェクト</a></dt>
 <dd>{{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")}} などの標準ビルトインオブジェクトについて理解しましょう。</dd>
 <dt><a href="/ja/docs/Web/JavaScript/Reference/Operators">式と演算子</a></dt>
 <dd>{{jsxref("Operators/instanceof", "instanceof")}}, {{jsxref("Operators/typeof", "typeof")}}, {{jsxref("Operators/new", "new")}}, {{jsxref("Operators/this", "this")}} といった JavaScript における演算子の挙動、そして<a href="/ja/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">演算子の優先順位</a>などについて学びましょう。</dd>
 <dt><a href="/ja/docs/Web/JavaScript/Reference/Statements">文と宣言</a></dt>
 <dd>{{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 の文やキーワードがどのように機能するか学びましょう。</dd>
 <dt><a href="/ja/docs/Web/JavaScript/Reference/Functions">関数</a></dt>
 <dd>アプリケーション開発において JavaScript の関数を扱う方法については、こちらをご覧ください。</dd>
</dl>

<h2 id="Tools_resources" name="Tools_resources">ツールとリソース</h2>

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

<dl>
 <dt><a href="/ja/docs/Tools">Firefox 開発ツール</a></dt>
 <dd><a href="/ja/docs/Tools/Web_Console">ウェブコンソール</a><a href="/ja/docs/Tools/Profiler">JavaScript プロファイラ</a><a href="/ja/docs/Tools/Debugger">デバッガー</a>など。</dd>
 <dt><a href="/ja/docs/JavaScript/Shells">JavaScript シェル</a></dt>
 <dd>ちょっとした JavaScript のコードを簡単にテストできる JavaScript シェル。</dd>
 <dt><a href="https://learnjavascript.online/">Learn JavaScript</a></dt>
 <dd>ウェブ開発者志望者のための優れたリソースです。自動評価で案内される短いレッスンと双方向のテストで JavaScript を学べます。最初の 40 レッスンは無料で、全コースは少額の払い切りで提供されます。</dd>
 <dt><a href="https://togetherjs.com/">TogetherJS</a></dt>
 <dd>簡単にリアルタイムコラボレーションを行えるライブラリ。TogetherJS をサイトに追加することで、ユーザーがウェブサイト上でリアルタイムに助け合えるようになります。</dd>
 <dt><a href="https://stackoverflow.com/questions/tagged/javascript">Stack Overflow</a></dt>
 <dd>"JavaScript" のタグが付いた Stack Overflow の質問一覧ページ<br>
 (訳注: 日本語情報となると <a href="https://qiita.com/tags/JavaScript">Qiita</a> がよいかもしれません。)</dd>
 <dt><a href="/ja/docs/Web/JavaScript/New_in_JavaScript">JavaScript のバージョンノートとリリースノート</a></dt>
 <dd>JavaScript 機能の歴史と実装状況について。</dd>
 <dt><a href="https://jsfiddle.net/">JSFiddle</a></dt>
 <dd>JavaScript、CSS、HTML を編集し、リアルタイムで実行結果を表示できるサイト。外部リソースを使い、オンライン上でチームと共同作業が行えます。</dd>
 <dt><a href="https://plnkr.co/">Plunker</a></dt>
 <dd>Plunker はウェブ開発のアイデアを作成、共同作業、共有するためのオンラインコミュニティです。JavaScript や CSS、HTML ファイルを編集し、ライブでの実行結果やファイル構造を取得することができます。</dd>
 <dt><a href="https://jsbin.com/">JSBin</a></dt>
 <dd>
 <p>JS Bin は、オープンソースの共同ウェブ開発デバッグツールです。</p>
 </dd>
 <dt><a href="https://codepen.io/">Codepen</a></dt>
 <dd>
 <p>Codepen はライブの結果の実行環境を使用した、もう一つの共同開発ウェブ開発ツールです。</p>
 </dd>
 <dt><a href="https://stackblitz.com/">StackBlitz</a></dt>
 <dd>
 <p>StackBlitz はもう一つの実行・デバッグツールであり、React や Angular などを使用したアプリケーションのスタック全体をホスティングして配置することができます。</p>
 </dd>
</dl>
</div>
</div>