JavaScript講座

当ページのリンクには広告が含まれています。

全体像と事前準備

基本文法と厳密モード

値・型・演算子

第5章:プリミティブ型とオブジェクトの違い(執筆中)

  • プリミティブ型:number, string, boolean, null, undefined, bigint, symbol
  • オブジェクト型の概要
  • typeof, instanceof
  • Truthy / Falsy と条件分岐

第6章:演算子の基本と == / ===(執筆中)

  • 算術 / 比較 / 論理 / 代入演算子
  • + 演算子:数値加算と文字列結合
  • ===== の違い、Object.is の存在
  • ビット演算子の基礎(&, |, ^, <<, >>, >>>
  • 演算子の優先順位と結合規則

第7章:近年の演算子とモダン構文(執筆中)

  • Null合体演算子 ??
  • オプショナルチェイニング ?.
  • 論理代入演算子 &&=, ||=, ??=
  • 分割代入とスプレッド構文 ...
  • テンプレートリテラル `Hello, ${name}`

第8章:制御構文(執筆中)

  • if / else if / else
  • switch
  • ループ:for, while, do...while
  • break, continue
  • ラベル付き文(使うことは少ないが、仕様として存在を知る)

関数・スコープ・this・クロージャ

第9章:関数の基本(執筆中)

  • 関数宣言 / 関数式
  • パラメータと戻り値
  • デフォルト引数
  • 残余引数 ...args
  • arguments オブジェクトと ...args の違い

第10章:アロー関数と this(執筆中)

  • アロー関数の構文
  • アロー関数と通常の関数の違い
  • this がレキシカルに決まる
  • arguments を持たない

第11章:スコープと実行コンテキスト(執筆中)

  • レキシカルスコープとは何か
  • グローバル / 関数 / ブロックスコープの連携
  • 実行コンテキストとスコープチェーンのイメージ
  • strict / 非 strict での this の違い(関数内部)

第12章:this 完全理解とクロージャ(執筆中)

  • 呼び出し方によって変わる this
  • 単純呼び出し / メソッド呼び出し / コンストラクタ呼び出し
  • call, apply, bind による this の固定
  • クロージャとは何か
  • クロージャの典型例(カウンター、パーシャル適用、隠蔽など)

オブジェクト指向とクラス

第13章:オブジェクトとプロトタイプ(執筆中)

  • オブジェクトリテラル {} とプロパティ
  • プロパティアクセス(ドット / ブラケット)
  • 参照型としての挙動(コピー / 共有)
  • プロトタイプチェーンとプロパティ探索

第14章:コンストラクタ関数と class 構文(執筆中)

  • コンストラクタ関数と new
  • class 構文の基本(constructor, メソッド定義)
  • extends / super による継承
  • 静的メソッド static

第15章:クラスフィールドとプライベートフィールド(執筆中)

  • パブリックインスタンスフィールド
    class A { x = 1; }
  • 静的フィールド
    class A { static count = 0; }
  • プライベートフィールド #name とプライベートメソッド
  • クラス内 getter / setter
  • フィールド初期化タイミングとコンストラクタの役割分担

第16章:プロパティ属性とディスクリプタ(執筆中)

  • データプロパティ / アクセサプロパティ
  • writable, enumerable, configurable
  • Object.defineProperty, Object.getOwnPropertyDescriptor
  • Object.freeze, Object.seal, Object.preventExtensions

標準ビルトインオブジェクト

第17章:文字列・数値・数学(執筆中)

  • String オブジェクトと主なメソッド
  • Number と数値リテラル
  • Math の代表的な関数
  • 浮動小数点数と精度問題
  • BigInt の基本

第18章:配列とコレクション(執筆中)

  • 配列と主なメソッド
  • 破壊的 / 非破壊的メソッドの整理
  • 高階関数:forEach, map, filter, reduce
  • Set, Map, WeakSet, WeakMap

第19章:日付・正規表現・国際化(執筆中)

  • Date と基本操作
  • JSON とシリアライズ/デシリアライズ
  • RegExp と簡単な正規表現
  • Intl 概観
  • Intl.NumberFormat
  • Intl.DateTimeFormat
  • Intl.Collator
    (i18nの基礎として)

第20章:バイナリデータとTypedArray(執筆中)

  • ArrayBuffer とメモリブロックのイメージ
  • TypedArrayUint8Array, Float32Array など)
  • DataView による柔軟な読み書き
  • どんな場面で使われるか(音声/画像処理、WebGL、バイナリプロトコル など)

例外とエラー

第21章:エラーと例外処理(執筆中)

  • Error と組み込みエラー型(TypeError, ReferenceError 等)
  • try / catch / finally
  • throw による例外送出
  • カスタムエラークラス
  • 同期処理と非同期処理のエラーの違い

モジュールとパッケージ管理

第22章:ES Modules の基本(執筆中)

  • export / import(デフォルト / 名前付き)
  • 相対パス import とモジュール解決のイメージ
  • <script type="module"> と従来スクリプトの違い
  • モジュールはデフォルトで strict mode であること
  • モジュールスコープと top-level thisundefined であること

第23章:動的インポートとモジュール情報(執筆中)

  • import() による動的インポート
  • import.meta とその代表例 import.meta.url
  • モジュール分割とコード分割の考え方

第24章:npm とパッケージ管理(仕様外だが必須)(執筆中)

  • package.json の役割
  • dependencies / devDependencies
  • npx とスクリプト実行

実行モデルと非同期処理

第25章:JavaScriptの実行モデルとマイクロタスク(執筆中)

  • JSがシングルスレッドであること
  • コールスタックのイメージ
  • イベントループ の概要
  • タスクキュー(macro task)
  • マイクロタスクキュー(micro task)
  • queueMicrotaskPromise.then が micro task で動くこと

第26章:コールバックとPromise(執筆中)

  • コールバックスタイルの問題点(コールバック地獄)
  • Promise の基本(new Promise, resolve, reject
  • then, catch, finally の挙動
  • Promiseの静的メソッド
  • Promise.resolve, Promise.reject
  • Promise.all, Promise.race,
  • Promise.allSettled, Promise.any

第27章:async / await(執筆中)

  • async 関数の挙動(戻り値が Promise になる)
  • await のルール(非Promiseの扱い)
  • try / catchasync / await の組み合わせ
  • 直列処理と並列処理(Promise.all と使い分け)

ブラウザ環境のJavaScript

第28章:DOM操作の基礎(執筆中)

  • DOMツリーの概念
  • 要素取得(getElementById, querySelector
  • テキスト・属性・クラスの操作
  • 要素の追加 / 削除

第29章:イベントとブラウザAPI(執筆中)

  • addEventListener とイベントオブジェクト
  • バブリング / キャプチャ
  • fetch によるHTTP通信
  • LocalStorage / SessionStorage
  • setTimeout, setInterval(ホスト側APIであること)

Node.js概観

第30章:Node.jsの基本(執筆中)

  • Node.js の特徴(ブラウザとの差)
  • グローバルオブジェクト global, process
  • 簡単なCLIスクリプト

第31章:Node.js標準モジュール概観(執筆中)

  • fs, path, os など
  • 環境変数の扱い
  • 簡単なファイル操作スクリプト

高度な言語仕様

第32章:イテレータ・ジェネレータ(執筆中)

  • イテラブル / イテレータプロトコル
  • カスタムイテレータ
  • function*yield
  • for...of とイテレータ
  • 非同期イテレータと for await...of 概観

第33章:メタプログラミング(執筆中)

  • Symbol の代表的な用途
  • Symbol.iterator, Symbol.toStringTag, Symbol.toPrimitive, Symbol.hasInstance など
  • ProxyReflect
  • タグ付きテンプレート

第34章:弱い参照(オプション)(執筆中)

  • WeakRef
  • FinalizationRegistry
  • GCとの関係と注意点(実務では利用頻度低めだが仕様としての存在)

品質・パフォーマンス・セキュリティ

第35章:コード品質とテスト(執筆中)

  • ESLint / Prettier
  • 単体テストフレームワーク(Jest など)の概観

第36章:パフォーマンスとメモリ(執筆中)

  • オブジェクト生成 / 解放のイメージ
  • 配列操作・ループの基本的な最適化の考え方
  • TypedArray を使ったパフォーマンス志向の処理への橋渡し

第37章:セキュリティの基本(執筆中)

  • XSSの概要とDOM操作時の注意点
  • eval / Function コンストラクタの危険性
  • 型チェック・入力バリデーションの重要性