JavaScriptの無料オンライン教材
- 現代の JavaScript チュートリアル https://ja.javascript.info/
(オリジナルの英語版)
- The Modern Javascript Tutorial https://javascript.info/
目次
パート1 JavaScript 言語 †
1. 導入 †
- 1.1 Javascript 入門
- 1.2 コードエディタ
- 1.3 開発者コンソール
2. JavaScript の基礎 †
- 2.1 Hello, world!
- 2.2 コード構造
- 2.3 モダンなモード, "use strict"
- 2.4 変数
- 2.5 データ型
- 2.6 型変換
- 2.7 演算子
- 2.8 比較
- 2.9 対話: alert, prompt, confirm
- 2.10 条件演算子: if, '?'
- 2.11 論理演算子
- 2.12 ループ: while と for
- 2.13 switch文
- 2.14 関数
- 2.15 関数式とアロー
- 2.16 JavaScript 特別授業
3. コード品質 †
- 3.1 Chrome でのデバッグ
- 3.2 コーディングスタイル
- 3.3 コメント
- 3.4 忍者コード
- 3.5 mocha による自動テスト
- 3.6 Polyfills
4. オブジェクト: 基本 †
- 4.1 オブジェクト
- 4.2 ガベージコレクション
- 4.3 シンボル型
- 4.4 オブジェクトメソッド, "this"
- 4.5 オブジェクトからプリミティブへの変換
- 4.6 コンストラクタ 演算子 new
5. データ型 †
- 5.1 プリミティブのメソッド
- 5.2 数値
- 5.3 文字列
- 5.4 配列
- 5.5 配列のメソッド
- 5.6 反復可能なオブジェクト
- 5.7 Map, Set, WeakMap と WeakSet
- 5.8 Object.keys, values, entries
- 5.9 分割代入
- 5.10 日付 と 時刻
- 5.11 JSON メソッド, toJSON
6. 関数の高度な機能 †
- 6.1 再帰とスタック
- 6.2 残りのパラメータとスプレッド演算子
- 6.3 クロージャ
- 6.4 古い "var"
- 6.5 グローバルオブジェクト
- 6.6 関数オブジェクト, NFE
- 6.7 "new Function" 構文
- 6.8 スケジューリング: setTimeout と setInterval
- 6.9 デコレータと転送, call/apply
- 6.10 関数バインディング
- 6.11 カリー化と部分適用
- 6.12 アロー関数ふたたび
7. オブジェクト、クラス、継承 †
- 7.1 プロパティフラグとディスクリプタ
- 7.2 プロパティの getters と setters
- 7.3 プロトタイプ継承
- 7.4 F.prototype
- 7.5 ネイティブのプロトタイプ
- 7.6 プロトタイプのためのメソッド
- 7.7 Class パターン
- 7.8 クラス
- 7.9 クラスの継承, super
- 7.10 クラスのチェック: "instanceof"
- 7.11 ミックスイン
8. エラーハンドリング †
- 8.1 エラーハンドリング, "try..catch"
- 8.2 カスタムエラー, Error の拡張
パート2 ブラウザ: ドキュメント, イベント, インタフェース †
1. ドキュメント †
- 1.1 ブラウザ環境, 仕様
- 1.2 DOM ツリー
- 1.3 DOM を歩く
- 1.4 検索: getElement* と querySelector*
- 1.5 ノードのプロパティ: タイプ、タグとコンテンツ
- 1.6 属性とプロパティ
- 1.7 ドキュメントの変更
- 1.8 スタイルとクラス
- 1.9 要素サイズとスクローリング
- 1.10 ウィンドウサイズとスクローリング
- 1.11 座標
2. イベント概論 †
- 2.1 ブラウザイベントの紹介
- 2.2 バブリング と キャプチャリング
- 2.3 イベント移譲(Event delegation)
- 2.4 ブラウザのデフォルト動作
- 2.5 カスタムイベントのディスパッチ
3. イベントの詳細 †
- 3.1 マウスイベントの基本
- 3.2 移動: mouseover/out, mouseenter/leave
- 3.3 マウスイベントでのドラッグ&ドロップ
- 3.4 キーボード: keydown と keyup
- 3.5 スクロール
- 3.6 ページのライフサイクル: DOMContentLoaded, load, beforeunload, unload
- 3.7 リソース読み込み: onload と onerror
4. フォーム, コントロール †
- 4.1 フォームプロパティとメソッド
- 4.2 フォーカス: focus/blur
- 4.3 イベント: change, input, cut, copy, paste
- 4.4 フォームの送信: submit のイベントとメソッド
パート3 その他の記事 †
1. アニメーション †
- 1.1 ベジェ曲線
- 1.2 CSS アニメーション
- 1.3 JavaScript アニメーション
2. フレームとウィンドウ †
- 2.1 Popups and window methods
- 2.2 Cross-window communication
- 2.3 The clickjacking attack
3. 正規表現 †
- 3.1 パターンとフラグ
- 3.2 RegExp と文字列のメソッド
- 3.3 文字クラス
- 3.4 エスケープ, 特殊文字
- 3.5 セットと範囲 [...]
- 3.6 ユニコードフラグ
- 3.7 量指定子 +, *, ? と {n}
- 3.8 貪欲と怠惰な量指定子
- 3.9 キャプチャグループ
- 3.10 後方参照: \n と $n
- 3.11 論理和指定子(Alternation) (OR) |
- 3.12 文字列の先頭 ^ と末尾 $
- 3.13 複数行モード, フラグ "m"
- 3.14 先読み (進行中)
- 3.15 Infinite backtracking problem
4. Promises, async/await †
- 4.1 導入: callbacks
- 4.2 Promise
- 4.3 Promises チェーン
- 4.4 Promise API
5. ネットワークリクエスト: AJAX と COMET †
- 5.1 XMLHttpRequest and AJAX