3.7 その他の組み込みオブジェクト
JavaScriptには、オブジェクトや配列以外にも標準で用意されている便利な 組み込みオブジェクト が多数存在します。これらはTypeScriptでも適切な型定義と共に利用できます。
3.7.1 Date オブジェクト
Section titled “3.7.1 Date オブジェクト”日時を扱うためのオブジェクトです。
- 生成:
new Date()で現在時刻、new Date("2026-02-24")のように文字列から生成できます。 - ISO 8601形式: データのやり取りには
2020-02-03T15:00:00+09:00のような標準形式が推奨されます。 - メソッド:
getTime()(ミリ秒単位の数値取得)やtoISOString()(標準形式文字列への変換)が頻繁に使われます。
3.7.2 正規表現オブジェクト (1) 正規表現の基本
Section titled “3.7.2 正規表現オブジェクト (1) 正規表現の基本”文字列のパターンマッチングを行うための仕組みです。
- リテラル記法:
/abc/のようにスラッシュで囲んで記述します。 - テスト:
reg.test(str)メソッドで、文字列がパターンに合致するかを判定(true/false)できます。
3.7.3 正規表現オブジェクト (2) 正規表現を使う方法
Section titled “3.7.3 正規表現オブジェクト (2) 正規表現を使う方法”文字列側のメソッドと組み合わせて高度な操作が可能です。
- 置換:
str.replace(/pattern/g, "replacement")でパターンに合う箇所を置換できます。 - マッチング:
str.match(reg)で、詳細なマッチング結果(キャプチャグループなど)を取得できます。
3.7.4 Map オブジェクト・Set オブジェクト
Section titled “3.7.4 Map オブジェクト・Set オブジェクト”特定の用途に特化した新しいデータ構造です。
- Map: 任意の値をキーにできる「真の連想配列」です。
map.set(key, value)やmap.get(key)で操作します。 - Set: 重複を許さない値の集合です。
set.add(value)で追加し、既に存在する値は無視されます。
3.7.5 プリミティブなのにプロパティがある?
Section titled “3.7.5 プリミティブなのにプロパティがある?”string や number などのプリミティブ型に対しても、.length や .toUpperCase() といったプロパティアクセスが可能です。
- 自動ボックス化: アクセスした瞬間に、JavaScriptが一時的にプリミティブをオブジェクトへ変換(ラップ)することで実現しています。
- TypeScriptの安全性: TypeScriptはこの挙動を正しく理解しており、存在しないプロパティ(例:
number型への.length)へのアクセスはコンパイルエラーとして防いでくれます。