今回は、JavaScriptのデータ型について解説していきましょう。
データ型とは、値の種類のことです。JavaScriptに限らず、プログラミング言語にはデータの型が存在します。JavaScriptのデータ型についてマスターしましょう。
JavaScriptのデータ型
JavaScriptのデータ型にはこのような種類があります。
数値型 | Number | |
文字列型 | String | シングル、ダブルクォーテーションで囲まれた文字 |
真偽型 | Boolean | true / false |
シンボル型 | Symbol | シンボル |
特殊型 | null / undefined | null型は値がnullな値。
値が代入されていない変数の値はundefinedになります。 |
配列 | Array | 複数の値の集合 |
オブジェクト | Object | |
関数 | Function |
まずはこのようなデータ型があるんだなーと理解していただき、JavaScriptの経験を積まれる内に理解を深めていただけるとよろしいかなと思います。
Number
数字はNumber になります。
JavaScriptでは、小数もNumber として識別されます。
typeof 1.4; //number
String
シングルクォーテーション(’ ‘)、またはダブルクォーテーション(” “)で囲まれた文字はString になります。
Boolean
true または false は、Boolean になります。
Symbol
Symbol を実務で使用するケースは少ないかもしれません。
Symbol は作成するたびに新しいSymbol を作成するので、シンボル同士で被ることがありません。
作成方法
const sym1 = Symbol(); const sym2 = Symbol('テスト');
同じ値にならない
const sym1 = Symbol(); const sym2 = Symbol(); console.log(sym1 === sym2); //false
オブジェクトのキーにすることができる
Symbolはオブジェクトのキーとして使用することができます
let obj = {}; const sym = Symbol("id"); obj[sym] = "test"; console.log(obj[sym]); // "test"
Symbol を使用することで、オブジェクトのキーを被らないように実装することができます。
ただ、実際の実務でもSymbol を使用するケースはほとんど見たことがないので、学習の初期段階では、このようなことが実装できるんだなーと頭の片隅に置く程度でOKに思います。
null / undefined
値がnull な値はnull 型になります。
JavaScriptで特有なものは、undefined だと思いますので、こちらも解説します。
undefined になるケースは下記です。
- 変数が宣言されていない場合
- オブジェクトに存在していないキーの呼び出し
- 関数の返り値がない場合
- 関数に引数を渡さなかった場合
null とundefined の比較
null とundefined は似ているようで厳密には違います。
// 厳密演算子 console.log(null === undefined); // false // 緩い比較 console.log(null == undefined); // true
実装しているハマりがちなので、この違いはしっかりと押さえておきましょう。
Array
配列はArrayです。
複数の値の集合をひとつの変数で宣言することができます。
これを配列といいます。
let nums = [1, 2, 3];
Object
オブジェクトとは、ひとつのデータの集合のことです。
言葉にすると、少しわかりにくいかもしれませんが、
例えば、
名前:田中
性別:男
年齢:25
趣味:映画鑑賞
のような人がいたとしましょう。
この人をオブジェクトで表すなら、
let person = { name: "田中", age: 25, favorite: "映画鑑賞", }
このような感じですかね。
このようにひとつのデータの集合をオブジェクトといい、JavaScriptではObject になります。
Function
関数もJavaScriptでは型で表すことができまして、Function になります。
データ型の確認方法
データ型は、typeof
演算子で確認することができます。
データの型を使用して、実装する必要がある場面もあると思いますので、型の確認方法はしっかりと押さえておきましょう。
let number = 10; console.log(typeof number); // number let name = 'tanaka'; console.log(typeof name); // string let check = true; console.log(typeof name); // boolean let sym = Symbol('foo'); console.log(typeof sym); // symbol