JavaScriptで利用できる型一覧について解説します。「データ型の確認方法」「型変換」「真偽値判定」についても取り上げます。
目次
基本型|値を格納
基本型とラッパーオブジェクト
基本型である、 数値型
文字列型
真偽型
は利用するとき、一時的にラッパーオブジェクト
を生成します。ラッパーオブジェクト
によって、オブジェクト( Number
String
Boolean
)のメソッドを利用できます。
ラッパーオブジェクト
の生成は自動的に行われるので、開発者は意識する必要はありません。
数値型
let number1 = 123
let number2 = 1.5
一時的にラッパーオブジェクトを生成し、オブジェクト(Number)として利用できます。
文字列型
let string = 'おはよう'
console.log(string.slice(1, 3)) // はよ
console.log(string.length) // 4
一時的にラッパーオブジェクトを生成し、オブジェクト(String)として利用できます。
真偽型
let boolean = true
一時的にラッパーオブジェクトを生成し、オブジェクト(Boolean)として利用できます。
null
意図的に空である状態にしたいとき利用します。
let nullVar = null
undefined
定義されてない状態です。
// undefinedVarという変数はまだ定義していない
console.log(typeof undefinedVar) // undefined
undefined
であるかの判定は以下のようにします。
if (typeof x === 'undefined') {}
シンボル
ES2015で追加されました。
let symbol1 = Symbol('xxx')
let symbol2 = Symbol('xxx')
console.log(symbol1 === symbol2) // false
console.log(symbol1 === symbol1) // true
===演算子
で判定したとき、同じシンボルでないと true
になりません。
利用例
const MAN = 0
const WOMAN = 1
console.log(MAN === MAN) // true
console.log(MAN === 0) // true
いままでですと、 MAN === 0
という判定処理ができてしまいました。
以下のようにシンボルを利用することで、可読性を下げる処理を記述できなくなります。
const MAN = Symbol()
const WOMAN = Symbol()
console.log(MAN === MAN) // true
console.log(MAN === WOMAN) // false
参照型|アドレスを格納
配列
let array = [1, 2, 3]
console.log(array.length) // 3
console.log(array.reduce((x, y) => {
return x + y
})) // 6
オブジェクト( 連想配列 )
JavaScriptにおいて オブジェクト
は 連想配列
と同じです。
let object = {'key1': 'value1', 'key2': 'value2'}
console.log(object.key1) // value1
console.log(object['key2']) // value2
キーを変数で指定するには以下のようにします。
let key = 'aaaaa'
let object2 = {[key]: 'xxxxx'}
console.log(object2[key]) // xxxxx
多次元連想配列のときは、プロパティチェックが必要です。
let object = {
'key1': {
'key1_1' : 'xxxx'
}
}
console.log(object.key1 && object.key1.key1_1) // xxxx
// key2をチェックせずにkey1_1を呼び出すと、下記エラーがでます。
// Uncaught TypeError: Cannot read property 'key1_1' of undefined
//
// console.log(object.key2.key1_1)
// 以下のように、key2のチェックが必要です。
console.log(object.key2 && object.key2.key1_1) // undefined
関数
let func = function (x, y) {
return x + y
}
console.log(func(2, 5)) // 7
// アロー関数
let func2 = (x, y) => {
return x + y
}
console.log(func2(2, 5)) // 7
データ型の確認方法
データ型を確認するには、typeof
を利用します。
let string = 'おはよう'
let number = 123
let boolean = true
let nullVar = null
let array = ['apple', 'orange']
let object = {'key1': 'value1', 'key2': 'value2'}
let func = function () {}
console.log(typeof string) // string
console.log(typeof number) // number
console.log(typeof boolean) // boolean
console.log(typeof nullVar) // object
console.log(typeof undefinedVar) // undefined
console.log(typeof array) // object
console.log(array instanceof Array) // true
console.log(typeof object) // object
console.log(typeof func) // function
型変換
// 文字列を数値に変換
console.log(Number('1234')) // 1234
// 数値を文字列に変換
console.log(String(1234)) // '1234'
// 真偽型に変換
console.log(Boolean(1234)) // true
console.log(Boolean('1234')) // true
真偽値判定
// 以下全て偽と見なされます
console.log(undefined ? 1 : 0) // 0
console.log(null ? 1 : 0) // 0
console.log(false ? 1 : 0) // 0
console.log(0 ? 1 : 0) // 0
console.log(NaN ? 1 : 0) // 0
console.log('' ? 1 : 0) // 0
// 以下全て真と見なされます
console.log(true ? 1 : 0) // 1
console.log(111 ? 1 : 0) // 1
console.log('aaa' ? 1 : 0) // 1
console.log([] ? 1 : 0) // 1
console.log({} ? 1 : 0) // 1
console.log(function () {} ? 1 : 0) // 1