-
JavaScript
[JavaScript講座] 弱参照(WeakRef / FinalizationRegistry)
GC と「到達可能性」 JS のメモリ管理は GC に任されている JavaScript では、C++ のように delete したり free する必要はありません。「到達不能になったオブジェクトは GC により自動解放される」のが基本です。 「到達可能(reachable)」とは: グロ... -
JavaScript
[JavaScript講座] メタプログラミング
メタプログラミングとは? 簡単に言うと、「言語やランタイムそのものの挙動を、コードでカスタマイズ・拡張するプログラミング手法」です。 普通のコード: 「データ」を処理するコードを書く メタプログラミング: 「コードや言語の振る舞い」を処理する... -
JavaScript
[JavaScript講座] イテレータ・ジェネレータ
イテラブルとイテレータ イテレータとは? イテレータ(iterator) はひとことで言うと、「next() メソッドで 次の値を順番に取り出せるオブジェクト」です。 イテレータは、次の形のオブジェクトを返す next() を持ちます: { value: 任意の値, done: boo... -
JavaScript
[JavaScript講座] Node.js標準モジュール
Node.js標準モジュールとは? 標準モジュールの位置づけ Node.js には、インストールしただけで最初から使えるモジュール群があります。 例: fs:ファイルシステム(File System) path:パス操作(/foo/bar を組み立てたり分解したり) os:OS情報(CPU... -
JavaScript
[JavaScript講座] Node.jsの基本
Node.jsとは何か ─ ブラウザとの決定的な違い そもそも Node.js は何者? 一言でいうと「ブラウザの外で JavaScript を動かすための実行環境(ランタイム)」です。 中身は主に Google Chrome と同じ V8 JavaScriptエンジン 非同期I/Oまわりなどを提供する... -
JavaScript
[JavaScript講座] イベントとブラウザAPI
イベントとは何か イベント定義 「ブラウザ内で起こった何か(ユーザー操作・読み込み完了など)」をJavaScript が通知として受け取るための仕組み 代表例: ユーザー操作 click, dblclick, mousedown, mouseup keydown, keyup, input, change submit(フ... -
JavaScript
[JavaScript講座] DOM操作の基礎
DOMとは何か HTML → DOMツリー ブラウザは: HTMLを読み込む パースして「木構造(ツリー)」にする そのツリーを DOM(Document Object Model) として JavaScript から操作できるようにする 例として、HTML: <body> <h1 id="title"&... -
JavaScript
[JavaScript講座] async / await
async 関数とは何か async を付けると「戻り値が Promise になる」 function normal() { return 1; } async function asyncFn() { return 1; } console.log(normal()); // 1 console.log(asyncFn()); // Promise { 1 } (fulfilled なPromise) ポイント:... -
JavaScript
[JavaScript講座] コールバックとPromise
コールバック関数とは何か 定義 「他の関数に引数として渡され、後から呼び出される関数」 がコールバックです。 例(同期): function repeat(n, action) { for (let i = 0; i < n; i++) { action(i); // ← 渡されたコールバックを呼んでいる } } rep... -
JavaScript
[JavaScript講座] JavaScriptの実行モデルとマイクロタスク
シングルスレッド+イベントループ 主役はこの3つ コールスタック(Call Stack) 「いま実行中の関数」が積み上がるスタック foo() から bar() を呼ぶ → foo の上に bar が積まれる → bar 終了 → foo に戻る、という普通のスタック挙動 タスクキュー(マク...