JavaScript データ型

JavaScriptには8つのデータ型があります。

  • String(文字列)
  • Number(数値)
  • Bigint(ビッグインテガー)
  • Boolean(真偽値)
  • Undefined(未定義)
  • Null(ヌル)
  • Symbol(シンボル)
  • Object(オブジェクト)

オブジェクトデータ型

オブジェクトデータ型には組み込みオブジェクトとユーザー定義オブジェクトの両方が含まれます。

組み込みオブジェクトタイプには以下があります:

objects, arrays, dates, maps, sets, intarrays, floatarrays, promises など。


// 数値:
let length = 16;
let weight = 7.5;

// 文字列:
let color = "Yellow";
let lastName = "Johnson";

// 真偽値:
let x = true;
let y = false;

// オブジェクト:
const person = {firstName:"John", lastName:"Doe"};

// 配列オブジェクト:
const cars = ["Saab", "Volvo", "BMW"];

// 日付オブジェクト:
const date = new Date("2022-03-25");

JavaScriptの変数はどんな種類のデータも保持できます。

データ型の概念

プログラミングにおいて、データ型は重要な概念です。

変数で操作するためには、その型についての知識が重要です。

データ型がなければ、コンピュータはこのような問題を安全に解決できません:

let x = 16 + "Volvo";

「16」と「Volvo」を足すことに何か意味があるでしょうか?エラーが発生するか、結果が出力されるでしょうか?

JavaScriptは上記の例を次のように扱います:

let x = "16" + "Volvo";

数値と文字列を足す場合、JavaScriptは数値を文字列として扱います。


let x = 16 + "Volvo";


let x = "Volvo" + 16;

JavaScriptは式を左から右に評価します。異なる順序で異なる結果が生じることがあります:

JavaScript:

let x = 16 + 4 + "Volvo";

結果:

20Volvo

JavaScript:

let x = "Volvo" + 16 + 4;

結果:

Volvo164

最初の例では、JavaScriptは「16」と「4」を数値として扱い、最後に「Volvo」に到達します。

2番目の例では、最初のオペランドが文字列であるため、すべてのオペランドが文字列として扱われます。

JavaScriptのタイプはダイナミックです

JavaScriptにはダイナミックなタイプがあります。これは同じ変数がさまざまなデータ型で使用できることを意味します:


let x;       // 現在 x は未定義です
x = 5;       // 現在 x は数値です
x = "John";  // 現在 x は文字列です

JavaScriptの文字列

文字列(テキスト文字列)は「John Doe」のような文字の並びです。

文字列は引用符で書かれます。シングルクォートまたはダブルクォートのどちらかを使用できます:


// ダブルクォートを使用:
let carName1 = "Volvo XC60";

// シングルクォートを使用:
let carName2 = 'Volvo XC60';

文字列の中に引用符を使用することができますが、文字列を囲む引用符と一致していない必要があります:


// ダブルクォートの中にシングルクォートを使用:
let answer1 = "It's alright";

// ダブルクォートの中にシングルクォートを使用:
let answer2 = "He is called 'Johnny'";

// シングルクォートの中にダブルクォートを使用:
let answer3 = 'He is called "Johnny"';

後のチュートリアルで文字列についてさらに学びます。

JavaScriptの数値

すべてのJavaScriptの数値は10進数(浮動小数点数)として格納されます。

数値は小数点を伴うか、伴わないかで書かれます:


// 小数点あり:
let x1 = 34.00;

// 小数点なし:
let x2 = 34;

指数表記

非常に大きな数や非常に小さな数は科学的な(指数)表記で書くことができます:


let y = 123e5;    // 12300000
let z = 123e-5;   // 0.00123

ほとんどのプログラミング言語には多くの数値型があります:

整数(整数):

byte (8ビット), short (16ビット), int (32ビット), long (64ビット)

実数(浮動小数点数):

float (32ビット), double (64ビット)

JavaScriptの数値は常に一つの型です:

double (64ビット浮動小数点数)

JavaScript BigInt

すべてのJavaScriptの数値は64ビット浮動小数点形式で格納されます。

JavaScriptのBigIntは通常のJavaScriptのNumberでは表現できない大きな整数値を格納するために使用される新しいデータ型(ES2020)です。


let x = BigInt("123456789012345678901234567890");

後のチュートリアルでBigIntについてさらに学びます。

JavaScriptの真偽値

真偽値はtrueまたはfalseの二つの値しか持つことができません。


let x = 5;
let y = 5;
let z = 6;
(x == y)       // trueを返します
(x == z)       // falseを返します

真偽値は条件テストでよく使用されます。

後のチュートリアルで真偽値についてさらに学びます。

JavaScriptの配列

JavaScriptの配列は角括弧で書かれます。

配列の要素はカンマで区切られます。

以下のコードは、三つのアイテム(車の名前)を含む配列「cars」を宣言(作成)します:


const cars = ["Saab", "Volvo", "BMW"];

配列のインデックスはゼロベースで、最初のアイテムが [0]、次が [1]、というようになります。

後のチュートリアルで配列についてさらに学びます。

JavaScriptのオブジェクト

JavaScriptのオブジェクトは波括弧 {} で書かれます。

オブジェクトのプロパティは名前と値のペアで書かれ、カンマで区切られます。


const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

上記の例のオブジェクト(person)には4つのプロパティがあります: firstName、lastName、age、eyeColor。

後のチュートリアルでオブジェクトについてさらに学びます。

typeof演算子

JavaScriptのtypeof演算子を使用して、JavaScript変数の型を調べることができます。

typeof演算子は変数または式の型を返します:


typeof ""             // "string"を返します
typeof "John"         // "string"を返します
typeof "John Doe"     // "string"を返します


typeof 0              // "number"を返します
typeof 314            // "number"を返します
typeof 3.14           // "number"を返します
typeof (3)            // "number"を返します
typeof (3 + 4)        // "number"を返します

後のチュートリアルでtypeofについてさらに学びます。

未定義

JavaScriptでは、値がない変数は値として「未定義(undefined)」を持ちます。その型も未定義です。


let car;    // 値は未定義、型は未定義です

どんな変数でも値を「未定義」に設定することで空にすることができます。その型も未定義になります。


car = undefined;    // 値は未定義、型は未定義です

空の値

空の値は「未定義」とは異なります。

空の文字列は有効な値としても型があります。


let car = "";    // 値は ""、typeof は "string"です