サンプルコード
JavaScript のサンプルコード一覧
JavaScript で「○○するには」を解決するコードサンプル。25 件。
他の言語から探す
カードの実行確認済みは、この言語のコードを実際に実行して出力を確認したことを表す。静的確認は、実行環境を用意できず、構文と公式 API ドキュメントで確認したものである。
2つの日付の差を求めるには
Date 同士を引くと数値に変換され、差はミリ秒で返る。日数にするには 86400000 で割る。専用の期間型が無いぶん単位を自分で決められるが、割った結果は小数のままなので、日数として使うなら Math.floor などで丸める向きを明示する。
実行確認済み
文字列が含まれるか調べるには
String.prototype.includes が基本形で、真偽値をそのまま得られる。引数に正規表現を渡すと TypeError になるため、パターンで探したいときは includes ではなく test や match を使う。古い実行環境に合わせる必要があるときだけ indexOf(...) !== -1 を使う。
実行確認済み
配列から重複を除くには
Set は挿入順を保つので、スプレッドで配列に戻すだけで出現順のまま重複が消える。オブジェクトは参照で比較され中身が同じでも別物と扱われるため、id などのキーで判定したいときは Map に詰め直す。この書き方では同じキーが後勝ちになる点に注意する。
実行確認済み
配列を文字列に連結するには
Array.prototype.join は要素を暗黙に文字列化するので、数値の配列でもそのまま渡せる。ただし null と undefined は空文字に変換されるため、欠損を残したくないときは事前に filter で除く。
実行確認済み
文字列を分割するには
String.prototype.split は区切りに文字列と正規表現のどちらも渡せる。第2引数の limit は Python の maxsplit と違って「返す配列の長さの上限」であり、あふれた分は切り捨てられて復元できない。先頭だけ取り出して残りをまとめたいときは、分割してから分割代入で受けるほうが安全である。
実行確認済み
配列を条件で絞り込むには
Array.prototype.filter は条件が真になった要素だけを集めた新しい配列を返し、元の配列は変更しない。1 件だけ欲しい場面で filter を使うと不要な走査が残るので、その場合は find を選ぶ。
実行確認済み
ディレクトリ内のファイル一覧を取得するには
readdir は既定で名前の配列を返すが、withFileTypes を付けると Dirent が返り、追加の stat 呼び出しなしでファイルとディレクトリを区別できる。項目数が多いディレクトリでは往復が減るぶん速い。
実行確認済み
ネストしたJSONから値を取り出すには
オプショナルチェーン ?. は途中が undefined や null になった時点で評価を打ち切り、undefined を返す。既定値は ?? で与える。|| だと 0 や空文字まで既定値に置き換わってしまうため、数値や文字列を読むときは ?? を使う。
実行確認済み
HTTPリクエストにヘッダーを付けるには
fetch の第 2 引数にある headers へオブジェクトを渡す形が最も短い。ハイフンを含むヘッダー名はそのままだと識別子にならないため、X-GitHub-Api-Version のようなキーは引用符で囲む。
実行確認済み
環境変数を設定するには
process.env への代入は値を文字列へ変換するので、数値を入れても取り出すときは文字列になる。削除は delete process.env.API_TOKEN で行う。child_process のオプション env を省略すると親の環境がそのまま渡るため、一部だけ変えたいときはスプレッドで展開して上書きする。
実行確認済み
.env ファイルを読み込むには
Node.js は 20.6.0 で --env-file フラグ、20.10.0 で process.loadEnvFile() を取り込んだため、新しめの環境では dotenv パッケージなしで読める。どちらも 20.x LTS へバックポートされている点に注意する。古い Node を対象にするなら require("dotenv").config() を使う。いずれの方法でも、読み込みは環境変数を参照する側より先に実行する必要がある。
実行確認済み
日付文字列を日付型にするには
new Date が仕様として保証するのは ISO 8601 の書式だけで、それ以外の解釈は実装に委ねられている。同じ ISO でも日付だけの "2026-08-14" は UTC、時刻まで書いてオフセットを省いた場合はローカル時刻として読まれるため、日付だけ扱いたいときは基準の違いで 1 日ずれることがある。読めなかったときは例外ではなく Invalid Date が返るので、getTime() が NaN かどうかで判定する。
実行確認済み
文字列の前後の空白を除去するには
String.prototype.trim は前後の空白文字を落とし、片側だけなら trimStart / trimEnd を使う。ここでいう空白文字には半角スペースやタブ・改行に加えて全角スペース(U+3000)も含まれるため、日本語の入力フォームでもそのまま使える。除去する文字を指定する引数は無いので、特定の文字を外したいときは replace を使う。
実行確認済み
HTTP POSTでJSONを送るには
Node.js 18 以降のグローバル fetch で送れるので外部パッケージは要らない。body には JSON.stringify した文字列を渡し、Content-Type を明示する。res.ok を先に見るのは、fetch が 4xx / 5xx でも reject せず解決するため、確認しないとエラー応答を作成結果として読み進めてしまうからである。
実行確認済み
ファイルが存在するか調べるには
fs/promises の stat は対象が無いと ENOENT で reject するので、catch で false に倒して真偽値にする。同期版の existsSync は手軽だがイベントループを止めるため、非同期処理の中では避ける。
実行確認済み
オブジェクトをJSON文字列にするには
第 2 引数は出力するキーを絞る replacer、第 3 引数がインデント幅である。整形が不要なら JSON.stringify(user) だけでよい。undefined や関数を値に持つプロパティは黙って出力から落ちる点に注意する。
実行確認済み
日付を書式付きの文字列にするには
標準の Date には任意書式への変換が無いため、固定の書式なら getFullYear 等を連結して自前で組む。表示用の文字列なら Intl.DateTimeFormat を使うと、ロケールごとの適切な並びを自分で扱わずに済む。
実行確認済み
環境変数を読むには
Node.js では環境変数は process.env にまとまっており、未設定のキーは undefined になる。?? や || で既定値を補う。ブラウザには process が無く、Vite なら import.meta.env のようにバンドラが置き換える仕組みを使う。
実行確認済み
ファイルを読み込むには
Node.js の fs/promises を使う書き方で、ブラウザでは動かない。第2引数にエンコーディングを渡すと Buffer ではなく文字列が返る。
実行確認済み
ファイルに書き込むには
Node.js の fs/promises を使う書き方で、ブラウザでは動かない。writeFile は既存ファイルを上書きするため、追記したいときは appendFile を使う。
実行確認済み
HTTP GETリクエストを送るには
Node.js 18 以降はグローバルの fetch がそのまま使えるので、外部パッケージは不要である。res.ok を先に見るのは、fetch が 404 や 500 でも reject せず解決してしまうため、確認を挟まないとエラー本文を正常なデータとして扱ってしまうからである。
実行確認済み
配列をソートするには
Array.prototype.sort は比較関数を渡さないと要素を文字列に変換して比較するため、数値はそのままだと辞書順になる。数値順にするには (a, b) => a - b を渡す。sort は破壊的なので、元の配列を残すならスプレッドでコピーしてから並べ替える。
実行確認済み
現在時刻を取得するには
new Date() は実行環境のタイムゾーンに紐づく「その瞬間」を表す。toISOString() は必ず UTC へ変換した文字列を返すので、画面に出す地域時刻が欲しいときは toLocaleString を使い分ける。
実行確認済み
JSONをパースするには
JSON.parse は文字列だけを受け取るため、ファイルは先にテキストとして読み込む必要がある。トップレベル await を使う場合はファイルが ESM として扱われている必要がある。
実行確認済み
文字列を置換するには
replace は置換対象を文字列で指定すると最初の1回しか置換しない。全置換には replaceAll を使うと、正規表現を持ち出さずに意図が明確になる。
実行確認済み