全体像と事前準備
あわせて読みたい


[JavaScript講座] JavaScriptとは
JavaScriptとは JavaScriptは「画面やアプリを動かすためのプログラミング言語」で、主に次のような場面で使用されています。 ブラウザの中で動作するプログラム ボタン…
あわせて読みたい


[JavaScript講座] 開発環境と実行方法
JavaScriptの開発環境と実行方法について解説します。 必要なもの一覧 前提として以下のものが必要になります。 OS:Windows / Mac / Linux(何でもOK) ブラウザ:Goog…
基本文法と厳密モード
あわせて読みたい


[JavaScript講座] 最初のJavaScriptコード
1つのファイルに書く「最初のプログラム」 Node.jsで実行する hello.js というファイルを作成し、以下のように記述します。 console.log("Hello JavaScript!"…
あわせて読みたい


[JavaScript講座] 構文ルールと “use strict”
文(statement)と式(expression) 「式」は値になるもの 式(expression) は、「評価すると値になるもの」と理解してOKです。 式の例: 1 + 2 // 3 という値になる &…
あわせて読みたい


[JavaScript講座] 変数・定数とスコープの基本
「変数」とは何か 一旦、var と const は忘れて、let だけで考えます。 let count = 1; console.log(count); // 1 count = count + 1; console.log(count); // 2 let で…
値・型・演算子
第5章:プリミティブ型とオブジェクトの違い(執筆中)
- プリミティブ型:
number,string,boolean,null,undefined,bigint,symbol - オブジェクト型の概要
typeof,instanceof- Truthy / Falsy と条件分岐
第6章:演算子の基本と == / ===(執筆中)
- 算術 / 比較 / 論理 / 代入演算子
+演算子:数値加算と文字列結合==と===の違い、Object.isの存在- ビット演算子の基礎(
&,|,^,<<,>>,>>>) - 演算子の優先順位と結合規則
第7章:近年の演算子とモダン構文(執筆中)
- Null合体演算子
?? - オプショナルチェイニング
?. - 論理代入演算子
&&=,||=,??= - 分割代入とスプレッド構文
... - テンプレートリテラル
`Hello, ${name}`
第8章:制御構文(執筆中)
if/else if/elseswitch- ループ:
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,configurableObject.defineProperty,Object.getOwnPropertyDescriptorObject.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.NumberFormatIntl.DateTimeFormatIntl.Collator
(i18nの基礎として)
第20章:バイナリデータとTypedArray(執筆中)
ArrayBufferとメモリブロックのイメージ- TypedArray(
Uint8Array,Float32Arrayなど) DataViewによる柔軟な読み書き- どんな場面で使われるか(音声/画像処理、WebGL、バイナリプロトコル など)
例外とエラー
第21章:エラーと例外処理(執筆中)
Errorと組み込みエラー型(TypeError,ReferenceError等)try/catch/finallythrowによる例外送出- カスタムエラークラス
- 同期処理と非同期処理のエラーの違い
モジュールとパッケージ管理
第22章:ES Modules の基本(執筆中)
export/import(デフォルト / 名前付き)- 相対パス import とモジュール解決のイメージ
<script type="module">と従来スクリプトの違い- モジュールはデフォルトで strict mode であること
- モジュールスコープと top-level
thisがundefinedであること
第23章:動的インポートとモジュール情報(執筆中)
import()による動的インポートimport.metaとその代表例import.meta.url- モジュール分割とコード分割の考え方
第24章:npm とパッケージ管理(仕様外だが必須)(執筆中)
package.jsonの役割dependencies/devDependenciesnpxとスクリプト実行
実行モデルと非同期処理
第25章:JavaScriptの実行モデルとマイクロタスク(執筆中)
- JSがシングルスレッドであること
- コールスタックのイメージ
- イベントループ の概要
- タスクキュー(macro task)
- マイクロタスクキュー(micro task)
queueMicrotaskとPromise.thenが micro task で動くこと
第26章:コールバックとPromise(執筆中)
- コールバックスタイルの問題点(コールバック地獄)
Promiseの基本(new Promise,resolve,reject)then,catch,finallyの挙動- Promiseの静的メソッド
Promise.resolve,Promise.rejectPromise.all,Promise.race,Promise.allSettled,Promise.any
第27章:async / await(執筆中)
async関数の挙動(戻り値が Promise になる)awaitのルール(非Promiseの扱い)try/catchとasync/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*とyieldfor...ofとイテレータ- 非同期イテレータと
for await...of概観
第33章:メタプログラミング(執筆中)
Symbolの代表的な用途Symbol.iterator,Symbol.toStringTag,Symbol.toPrimitive,Symbol.hasInstanceなどProxyとReflect- タグ付きテンプレート
第34章:弱い参照(オプション)(執筆中)
WeakRefFinalizationRegistry- GCとの関係と注意点(実務では利用頻度低めだが仕様としての存在)
品質・パフォーマンス・セキュリティ
第35章:コード品質とテスト(執筆中)
- ESLint / Prettier
- 単体テストフレームワーク(Jest など)の概観
第36章:パフォーマンスとメモリ(執筆中)
- オブジェクト生成 / 解放のイメージ
- 配列操作・ループの基本的な最適化の考え方
- TypedArray を使ったパフォーマンス志向の処理への橋渡し
第37章:セキュリティの基本(執筆中)
- XSSの概要とDOM操作時の注意点
eval/Functionコンストラクタの危険性- 型チェック・入力バリデーションの重要性