JavaScript typeof 的数据类型以及运算符
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:62} // 返回 "object"
typeof new Date() // 返回 "object"
typeof function () {} // 返回 "function"
typeof myCar // 返回 "undefined" *
typeof null // 返回 "object"
请注意:
NaN 的数据类型是数值
数组的数据类型是对象
日期的数据类型是对象
null 的数据类型是对象
未定义变量的数据类型是 undefined
尚未赋值的变量的数据类型也是 undefined
您无法使用 typeof 去判断 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:62}.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;
}
或者更简单,您可以检查对象是否是数组函数:
实例
function isArray(myArray) {
return myArray.constructor === Array;
}
您可以通过检查 constructor 属性来确定某个对象是否为日期(包含单词 "Date"):
实例
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
或者更简单,您可以检查对象是否是日期函数:
实例
function isDate(myDate) {
return myDate.constructor === Date;
}
|