JavaScript 入門 | 型 | データ型 (Data type)

データ型 (data type)

データ型 (data type) とは、プログラムで扱える値の種類を意味する。
JavaScript では、いくつかの型があらかじめ定義されており、これを基本型という。
JavaScript の基本型は、大きくプリミティブ型とオブジェクト型に分けられる。

プリミティブ型 (primitive type) は次のとおりである。

  1. 数値 (number)
  2. 文字列 (string)
  3. 真偽値 (boolean)
  4. シンボル (symbol): ECMAScript 6 から提供
  5. undefined

オブジェクト型 (object type) は次のとおりである。

  1. オブジェクト (object)
var num = 10;          // 数値
var myName = "山田太郎"; // 文字列
var str;               // undefined

数値 (number)

JavaScript は他の言語とは異なり、整数と実数を別々に区別せず、すべての数値を 1 種類の実数として表現する。 また、非常に大きい数や非常に小さい数を表す場合は、e 表記法を使用できる。

var firstNum = 10;     // 小数点を使用しない表現
var secondNum = 10.00; // 小数点を使用した表現
var thirdNum = 10e6;   // 10000000
var fourthNum = 10e-6; // 0.00001

文字列 (string)

JavaScript で文字列とは、二重引用符 ("") または一重引用符 (’’) で囲まれた文字の集まりを意味する。 二重引用符は一重引用符で囲まれた文字列の中にだけ含めることができ、一重引用符は二重引用符で囲まれた文字列の中にだけ含めることができる。

var firstStr = "これも文字列である。";      // 二重引用符を使った文字列
var secondStr = 'これも文字列である。';     // 一重引用符を使った文字列
var thirdStr = "私の名前は '山田太郎' です。"  // 一重引用符は二重引用符で囲まれた文字列の中にだけ含められる。
var fourthStr = '私の名前は "山田太郎" です。' // 二重引用符は一重引用符で囲まれた文字列の中にだけ含められる。

JavaScript では、数値と文字列を加算することもできる。 この場合、JavaScript は数値を文字列に自動変換し、2 つの文字列を連結する演算を行う。

var num = 10;
var str = "JavaScript";
document.getElementById("result").innerHTML = (num + str); // 10JavaScript

真偽値 (boolean)

boolean 値は、真 (true) と偽 (false) を表す。

JavaScript では、真偽値を予約語である true と false で表すことができる。

var firstNum = 10;
var secondNum = 11;
document.getElementById("result").innerHTML = (firstNum == secondNum); // false

次のような値は偽として評価される。

false
undefined
null
0
NaN
the empty string ("")

条件文に渡された場合、すべてのオブジェクトを含め、それ以外のすべての値は真として評価される。

シンボル (symbol)

シンボル型は ECMAScript 6 から新しく追加された型である。
シンボルは一意で変更できない型であり、オブジェクトのプロパティの識別子として使用できる。

var sym = Symbol("javascript");  // symbol 型
var symObj = Object(sym);        // object 型

シンボル型は Internet Explorer ではサポートされない。

typeof 演算子

typeof 演算子は、オペランドの型を返す、オペランドが 1 つだけの演算子である。

typeof 10;        // number 型
typeof "文字列";  // string 型
typeof true;      // boolean 型
typeof undefined; // undefined 型
typeof null;      // object 型

null と undefined

JavaScript で null とは object 型であり、まだ「値」が決まっていないことを意味する。
また、undefined は null とは異なり、「型」が決まっていないことを意味する。
したがって JavaScript では、初期化されていない変数や存在しない値にアクセスしたときに undefined が返される。

var num;          // 初期化していないため undefined 値を返す。
var str = null;   // object 型の null 値
typeof secondNum; // 定義されていない変数にアクセスすると undefined 値を返す。

null と undefined は、等価演算子 (==) と厳密等価演算子 (===) で比較したときに結果が異なるため注意が必要である。
null と undefined は型を除けば同じ意味だが、型が異なるため厳密には一致しない。

null ==  undefined; // true
null === undefined; // false

オブジェクト (object)

JavaScript の基本型はオブジェクト (object) である。 オブジェクトとは、実生活で私たちが認識できる物として理解できる。 オブジェクトは、複数のプロパティ (property) やメソッド (method) を同じ名前でまとめた一種の集合体である。

var dog = { name: "Happy", age: 3 }; // オブジェクトの作成
// オブジェクトのプロパティを参照
document.getElementById("result").innerHTML =
    "犬の名前は " + dog.name + " で、年齢は " + dog.age + " 歳である。";