🙆

JavaScriptのデータ型について

2023/06/04に公開

まずはプリミティブ型について説明します。

数値 (number)

1, -1, 3.1415

など、整数値や小数を扱う型。

文字列 (string)

”Hello”,1

など、ダブルコーテーション、シングルコーテーション、バッククオート(テンプレートリテラル)のどれかで囲む。バッククオートの場合は${}の中で変数が利用できます。

let name = "Ryota";
let age = 34;

let message = `私の名前は${name}です。年齢は${age}才です。`;

真偽値 (boolean)

true(真)とfalse(偽)がある。

let isSunny = true;   // ブール値
let isRaining = false;  // 別のブール値

console.log(isSunny);  // 出力: true
console.log(isRaining);  // 出力: false

// これらのブール値は条件文で使用できます
if (isSunny) {
    console.log("サングラスを着用すべきです!");
} else {
    console.log("サングラスを必要としないかもしれません。");
}

JavaScriptの値はすべて、trueとして判定されるtruthyな値か、falseとして判定されるfalsyな値かになる。falsyな値は、false,0,undefined,null,NaNなどがあり、他はtrutyな値として判定されます。
※falsyな値として上記のほかに、-0,0n,””(空文字),document.allがあります。

null

let string = null;
console.log(string); // 出力: null 

値が存在しないという意味。ECMAScriptの仕様では、開発者が意図的に設定しない限りnullになることはありません。※純粋なECMAScriptでない、DOMAPIのメソッドなどはnullを返すものがあります。

let element = document.getElementById("nonexistentId");
console.log(element); // 出力: null (ID "nonexistentId" を持つ要素が存在しない場合)

undefined

let string = “”;
console.log(string); // 出力: undefined

nullと同じく値が存在しないという意味。ECMAScriptで値が定義されていないときはnullではなく、undefineとなります。

null == undefined // 出力: true
null === undefined // 出力: false

シンボル (symbol)

let Sym1 = Symbol("Sym")
let Sym2 = Symbol("Sym")
console.log(Sym1 === Sym2) // 出力: false

Symbol関数を使用して定義します。シンボル型は一意の値になるのが特徴です。これはES6(ES2015)で作成された新しい仕様です。

JavaScriptで使用できる複合データ型は以下の通りです。

配列 (array)

const ary = [
  10, // 数値
  "Hello, world!", // 文字列
  true, // ブール値
  { name: "John Doe", age: 30 }, // オブジェクト
  [1, 2, 3], // 配列
  null, // null
  undefined, // undefined
  function(a, b) { return a + b; }, // 関数
]

配列にはすべてのデータ型を入れることができます。
※上記配列ではシンボル型は省略しました。
以下のように使用します。

ary[0]; // 出力: 10
ary[1]; // 出力: Hello world!

オブジェクト (object)

let obj = {
  number: 10, // 数値
  string: "Hello, world!", // 文字列
  boolean: true, // ブール値
  object: { name: "John Doe", age: 30 }, // オブジェクト
  array: [1, 2, 3], // 配列
  null: null, // null
  undefined: undefined, // undefined
  function: function(a, b) { return a + b; }, // 関数
};

オブジェクトにもすべての値を入れることができます。以下のように使用できます。

obj.number; //10
obj.string; //"Hello, world"

関数 (function)

function sumNumber(num1, num2) {
  return num1 + num2;
}

console.log(sumNumber(2,3)); // 出力: 5

上記は数字を2つ受け取って返す関数です。
ES2015からアロー関数という書き方もできるようになりました。

const sumNumber = (num1, num2) => {
  return num1 + num2;
}

console.log(sumNumber(2, 3)); // 出力: 5

また、アロー関数が1行で記載出来る場合は”{}”とreturnを省略できます。

const sumNumber = (num1, num2) => num1 + num2;

console.log(sumNumber(2, 3)); // 出力: 5

Discussion