JavaScript typeof
- 前のページ JS Map メソッド
- 次のページ JS 型変換
JavaScript typeof
JavaScriptには値を含むことができる5種類の異なるデータ型があります:
string
number
boolean
object
function
以下の6種類のオブジェクトがあります:
Object
Date
Array
String
Number
Boolean
および、値を含むことができない2種類のデータ型があります:
null
undefined
typeof演算子
以下を使用できます typeof
演算子を使用してJavaScript変数のデータ型を確認できます。
例
typeof "Bill" // 返却値 "string" typeof 3.14 // 返却値 "number" typeof NaN // 返却値 "number" typeof false // 返却値 "boolean" typeof [1,2,3,4] // 返却値 "object" typeof {name:'Bill', age:19} // 返却値 "object" typeof new Date() // 返却値 "object" typeof function () {} // 返却値 "function" typeof myCar // 返却値 "undefined" * typeof null // 返却値 "object"
注意してください:
- NaNのデータ型は数字です
- 配列のデータ型はオブジェクトです
- 日付のデータ型はオブジェクトです
- nullのデータ型はobjectです
- 未定義の変数のデータ型は undefined *
- 未設定の変数のデータ型も undefined *
以下を使用することはできません typeof
JavaScriptオブジェクトが配列(または日付)であるかどうかを確認するために使用します。
原始日付
原始データ値とは、属性やメソッドが付加されていない単純なデータ値を指します。
typeof
演算子は以下のいずれかの原始データ型を返します:
string
number
boolean
undefined
例
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof true // 返回 "boolean" typeof false // 返回 "boolean" typeof x // 返回 "undefined" (if x has no value)
复杂数据
typeof
运算符可以返回两种复杂类型之一:
function
object
typeof
运算符会为对象、数组和 null 返回 "object"。
typeof
运算符不会为函数返回 "object"。
例
typeof {name:'Bill', age:19} // 返回 "object" typeof [1,2,3,4] // 返回 "object"(非 "array",请注意下面的例子) typeof null // 返回 "object" typeof function myFunc(){} // 返回 "function"
typeof
运算符会为数组返回 "object"
,因为在 JavaScript 中数组是对象。
typeof 的数据类型
typeof
运算符并不是变量。它只是一个运算符。运算符 (+ - * /) 没有任何数据类型。
但是,typeof
运算符总是返回字符串(包含操作数的类型)。
constructor 属性
constructor
属性返回所有 JavaScript 变量的构造函数。
例
"Bill".constructor // 返回 function String() {[native code]} (3.14).constructor // 返回 function Number() {[native code]} false.constructor // 返回 function Boolean() {[native code]} [1,2,3,4].constructor // 返り値 function Array() {[native code]} {name:'Bill',age:19}.constructor // 返り値 function Object() {[native code]} new Date().constructor // 返り値 function Date() {[native code]} function () {}.constructor // 返り値 function Function(){[native code]}
オブジェクトが配列であるかどうかを確認するために、constructor属性をチェックできます(以下を含む): "Array"
(以下の単語):
例
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
またはもっと簡単に、オブジェクトが「Date」かどうかを確認できます。配列関数:
例
function isArray(myArray) { return myArray.constructor === Array; }
オブジェクトが日付であるかどうかを確認するために、constructor属性をチェックできます(以下を含む): "Date"
(以下の単語):
例
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
またはもっと簡単に、オブジェクトが「Date」かどうかを確認できます。日付関数:
例
function isDate(myDate) { return myDate.constructor === Date; }
Undefined
JavaScriptでは、値を持たない変数の値は undefined
です。データ型も undefined
。
例
let car; // 値は undefined、データ型も undefined。
を設定することで、 undefined
を設定することで、どんな変数も空にできます。データ型も undefined
。
例
car = undefined; // 値は undefined、データ型も undefined。
Null
JavaScriptでは、 null
「無」です。存在しないものです。
残念ながら、JavaScriptでは、null
データ型はオブジェクトです。
これは JavaScript のバグの一つと考えられます。typeof null
これはオブジェクトです。タイプは null
。
オブジェクトを設定することで: null
オブジェクトをクリアする方法:
例
let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"}; person = null; // 現在の値は null ですが、タイプはまだオブジェクトです
オブジェクトを設定することで: undefined
オブジェクトをクリアする方法:
例
let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"}; person = undefined; // 現在の値とタイプはどちらも未定義
undefined と null の違い
undefined
および null
値が等しいがタイプが異なる:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
- 前のページ JS Map メソッド
- 次のページ JS 型変換