主な内容の要点
- JavaScript のデータ型は プリミティブ型 と オブジェクト型 に大きく分けられる。
- 変数宣言時には型を指定しない(動的型付け)。同じ変数に異なる型の値を代入できる。
プリミティブ型(原始型)
プリミティブ型には以下の 7 種類が挙げられている。
| 型 | 内容 / 特性 | typeof による返り値 など |
|---|---|---|
| 数値(Number) | 整数・浮動小数点数ともにこの型で扱う。64 ビット浮動小数点。 | typeof 3.14 → "number" |
| 長整数(BigInt) | 非常に大きな整数を扱う型。値の末尾に n を付けて表現。 | typeof 123n → "bigint" |
| 文字列(String) | 一連の文字の集合。シングル/ダブルクォートで囲む。 | typeof "abc" → "string" |
| 論理値(Boolean) | true または false。条件式などで使う。 | typeof true → "boolean" |
| undefined | 値が 定義されていない ことを表す特殊値。変数宣言後、代入前の値など。 | typeof undefined → "undefined" |
| null | 値が 存在しないことを意図的に表す 特殊値。 | typeof null → "object"(歴史的な仕様の結果) |
| シンボル(Symbol) | ES6 以降。ユニークな識別子を生成可能。主にオブジェクトのプロパティキーなどで使う。 | typeof Symbol() → "symbol" |
各型の注意点・補足
- 数値型(Number):整数・小数とも同じ型で扱う。
- 長整数(BigInt):普通の数値型とは混在して演算できない。混在させるとエラーになるので、明示的な型変換が必要。
- null:
typeof nullが"object"を返すが、これは仕様上の特殊な挙動。 - シンボル:生成されるたびにユニークで、他と重複しない。オブジェクトのキーなどで重複回避に使える。
オブジェクト型
- プリミティブ型でないものはすべてオブジェクト型とみなされる。
- オブジェクト型の例としては、以下のようなものがある:
・Object(一般オブジェクト)
・Array(配列)
・Function(関数)
・Date(日付オブジェクト)
・RegExp(正規表現オブジェクト)
・String/Number などのラッパーオブジェクト - オブジェクト型は複数のプロパティや値を持てる(ネスト可能)。たとえば、配列は複数の要素を持ち、オブジェクトはキーと値の組を持つ。
