JavaScript のあらゆる値には、その種類を表す型がある。
型は、大きく 2 つの総称型に分けることができる。
それは、オブジェクト型とプリミティブ型である。
JavaScript にもプリミティブ型が存在するのだ。

オブジェクト型は、値の集合を表す。
オブジェクト型の値(以下、オブジェクト)は連想配列(Hash)であり、
任意の文字列のキーに任意の値を関連付けることができる。
オブジェクトに関連付けれらたキーを、プロパティと呼ぶ。

プロパティが自由に変更できるため、オブジェクトは可変である。
オブジェクトは参照型であるため、
代入を行っても、オブジェクトが複製されることはなく、
同一のオブジェクトが参照される。

それに対して、プリミティブ型は、基本となるデータそのものを表す。
プリミティブ型の値(以下、プリミティブ値)は、
オブジェクトと異なり、プロパティを持つことはできず、
具体的な型に応じた、単一の値のみを保持している。

プリミティブ値は、データの最小単位であるため、その値は不変である。

通常の用途では、これらのデータ型を意識することはほとんどないが、
言語的には、これらは明確に区別されている。