JavaScript typeof
JavaScriptには、5つの異なるデータ型があります。
string
number
boolean
object
function
オブジェクトには次の6種類があります。
Object
Date
Array
String
Number
Boolean
値を含めることができない2つのデータ型です。
null
undefined
typeofのオペレーター
typeof
演算子を使用して、JavaScriptの変数のデータ型を確認できます。
例
確認してください。
- NaNのデータ型はnumberです
- 配列のデータ型はobjectです
- 日付のデータ型はobjectです
- nullのデータ型はobjectです
- 未定義変数のデータ型はundefindです
- 値が割り当てられていない変数のデータ型はundefindです
JavaScriptのオブジェクトが配列(または日付)かどうかを判断するのにtypeof
は使用できません。
Primitive (プリミティブ、基本データ型)
Primitive (プリミティブ)は、追加のプロパティやメソッドを持たないデータ型です。
typeof
演算子は、次のデータ型のいずれかを返却します。
string
number
boolean
undefined
例
複雑なデータ型
typeof
演算子は、以下2つの複合型のいずれかを返却します。
function
object
typeof
演算子は、オブジェクト、配列、および null に対して「object」を返却します。
typeof
演算子は、関数に対しては「object」を返却しません。
例
JavaScriptでは配列はobjectなので、typeof演算子は配列に対して「object」を返却します。
typeofのデータ型
typeof
演算子は変数ではありません。演算子( + - * / )にはデータ型がありません。
しかしtypeof
演算子は常に文字列を返します(オペランドの型を含む)。
constructorプロパティ
constructor
プロパティは、すべての変数のコンストラクター関数を返却します。
例
オブジェクトがArray
("Array"という単語を含む)かどうかを調べるには、コンストラクタのプロパティをチェックします。
例
または、もっと単純にオブジェクトがArray関数かどうかをチェックできます。
オブジェクトがDate
("Date"という単語を含む)かどうかを調べるには、コンストラクタのプロパティをチェックします。
または、もっと単純にオブジェクトがDate関数かどうかをチェックできます。
Undefined
JavaScriptでは、値のない変数はundefind
という値を持ちます。型も未定義です。
どの変数も、値をundefined
に設定することにより、任意の変数を空にすることができます。タイプも未定義になります。
空の値
空の値はundefind
とは関係ありません。
空の文字列には、有効な値と型の両方があります。
Null
JavaScriptにてnull
は「無」です。存在しないという意味です。
しかしながら、JavaScript では、null
はオブジェクトです。
typeof null
がオブジェクトであることは、JavaScriptのバグと考えることができます。null
であるべきです。null
を設定することでオブジェクトを空にできます。
例
undefined
を設定してオブジェクトを空にすることもできます。
例
undefinedとNullの違い
undefined
とnull
は同じ値ですが、型が異なります。
演算子のインスタンス
instanceof
演算子は、オブジェクトが指定されたオブジェクトのインスタンスである場合true
を返却します。
例
void演算子
void 演算子は式を評価し、未定義を返却します。この演算子は、"void(0)" を使用して未定義のプリミティブ値を取得するためによく使用されます(戻り値を使用せずに式を評価する場合に便利です)。
例
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。