#author("2019-01-02T08:46:08+00:00","default:sagasite","sagasite")
[[JavaScript]]
JavaScriptの無料オンライン教材
- 現代の JavaScript チュートリアル https://ja.javascript.info/
(オリジナルの英語版)
- The Modern Javascript Tutorial https://javascript.info/
目次
#contents
* パート1 JavaScript 言語 [#d740496b]
** 1. 導入 [#q31ae7a9]
- 1.1 Javascript 入門
- 1.2 コードエディタ
- 1.3 開発者コンソール
** 2. JavaScript の基礎 [#n4c8c0d3]
- 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. コード品質 [#h2d7685a]
- 3.1 Chrome でのデバッグ
- 3.2 コーディングスタイル
- 3.3 コメント
- 3.4 忍者コード
- 3.5 mocha による自動テスト
- 3.6 Polyfills
** 4. オブジェクト: 基本 [#cef78669]
- 4.1 オブジェクト
- 4.2 ガベージコレクション
- 4.3 シンボル型
- 4.4 オブジェクトメソッド, "this"
- 4.5 オブジェクトからプリミティブへの変換
- 4.6 コンストラクタ 演算子 new
** 5. データ型 [#m8037b5c]
- 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. 関数の高度な機能 [#v6dd9ea7]
- 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. オブジェクト、クラス、継承 [#mdbacc77]
- 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. エラーハンドリング [#y0ab1c6a]
- 8.1 エラーハンドリング, "try..catch"
- 8.2 カスタムエラー, Error の拡張
* パート2 ブラウザ: ドキュメント, イベント, インタフェース [#ddf227ce]
** 1. ドキュメント [#f2e0142e]
- 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. イベント概論 [#e7792408]
- 2.1 ブラウザイベントの紹介
- 2.2 バブリング と キャプチャリング
- 2.3 イベント移譲(Event delegation)
- 2.4 ブラウザのデフォルト動作
- 2.5 カスタムイベントのディスパッチ
** 3. イベントの詳細 [#ab00082a]
- 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. フォーム, コントロール [#q336a5e1]
- 4.1 フォームプロパティとメソッド
- 4.2 フォーカス: focus/blur
- 4.3 イベント: change, input, cut, copy, paste
- 4.4 フォームの送信: submit のイベントとメソッド
* パート3 その他の記事 [#lcf084e7]
** 1. アニメーション [#n68f4585]
- 1.1 ベジェ曲線
- 1.2 CSS アニメーション
- 1.3 JavaScript アニメーション
** 2. フレームとウィンドウ [#c3c297bf]
- 2.1 Popups and window methods
- 2.2 Cross-window communication
- 2.3 The clickjacking attack
** 3. 正規表現 [#f3f3cd41]
- 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 [#r861190c]
- 4.1 導入: callbacks
- 4.2 Promise
- 4.3 Promises チェーン
- 4.4 Promise API
** 5. ネットワークリクエスト: AJAX と COMET [#t0b8b175]
- 5.1 XMLHttpRequest and AJAX