JavaScript 类型
在 JavaScript 中,有 5 种不同的数据类型可以包含值:
string
number
boolean
object
function
有 6 种类型的对象:
Object
Date
Array
String
Number
Boolean
还有两种不能包含值的数据类型:
null
undefined
typeof 运算符
您可以使用 typeof
运算符来查找 JavaScript 变量的数据类型。
例子
typeof "John" // 返回“string”
typeof 3.14 // 返回“数字”
typeof NaN // 返回“数字”
typeof false // 返回“boolean”
typeof [1,2,3,4] // 返回“对象”
typeof {name:'John', age:34} // 返回“object”
typeof new Date() // 返回“对象”
typeof function () {} // 返回“function”
typeof myCar // 返回“undefined”*
typeof null // 返回“object”
亲自尝试 »
请注意:
- NaN 的数据类型是数字
- 数组的数据类型是对象
- 日期的数据类型是对象
- null 的数据类型是 object
- 未定义变量的数据类型是 不明确的 *
- 尚未赋值的变量的数据类型也是 不明确的 *
您不能使用 typeof
确定 JavaScript 对象是否是数组(或日期)。
原始数据
原始数据值是单个简单数据值,没有附加属性和方法。
这 typeof
运算符可以返回以下原始类型之一:
string
number
boolean
undefined
例子
typeof "John" // 返回“string”
typeof 3.14 // 返回“数字”
typeof true // 返回“boolean”
typeof false // 返回“boolean”
typeof x // 返回“undefined”(如果 x 没有值)
亲自尝试 »
复杂数据
这 typeof
运算符可以返回两种复杂类型之一:
function
object
这 typeof
运算符对于对象、数组和空值返回“对象”。
这 typeof
运算符不返回函数的“对象”。
例子
typeof {name:'John', age:34} // 返回“object”
typeof [1,2,3,4] // 返回“对象”(不是“数组”,请参阅下面的注释)
typeof null // 返回“object”
typeof function myFunc(){} // 返回“function”
亲自尝试 »
这 typeof
操作员返回“object
“对于数组来说,因为在 JavaScript 中数组是对象。
typeof 的数据类型
这 typeof
运算符不是变量。它是一个运算符。运算符 ( + - * / ) 没有任何数据类型。
但是, typeof
操作员总是返回一个字符串 (包含操作数的类型)。
构造函数属性
这 constructor
属性返回所有 JavaScript 变量的构造函数。
例子
"John".constructor // 返回函数 String() {[本机代码]}
(3.14).constructor // 返回函数 Number() {[本机代码]}
false.constructor // 返回函数 Boolean() {[本机代码]}
[1,2,3,4].constructor // 返回函数 Array() {[本机代码]}
{"name":"John","age":34}
new Date().constructor // 返回函数 Date() {[本机代码]}
{"params":[],"text":"}.constructor // 返回函数 Function(){[本机代码]"}
亲自尝试 »
你可以检查构造函数属性来确定一个对象是否是 Array
(包含单词“Array”):
或者更简单,你可以检查对象是否是 数组函数:
你可以检查构造函数属性来确定一个对象是否是 Date
(包含单词“日期”):
或者更简单,你可以检查对象是否是 日期函数:
不明确的
在 JavaScript 中,没有值的变量具有值 undefined
. 类型也是 undefined
.
任何变量都可以被清空,通过将值设置为 undefined
. 类型也将是 undefined
.
空值
空值与 undefined
.
空字符串既具有合法值,又具有类型。
无效的
在 JavaScript 中 null
是“无”。它应该是不存在的东西。
不幸的是,在 JavaScript 中, null
是一个对象。
typeof null
是一个对象。它应该是null
.
您可以通过将对象设置为清空 null
:
例子
让 person = {firstName:“John”,lastName:“Doe”,年龄:50,eyeColor:“blue”};
person = null; // 现在值为 null,但类型仍然是一个对象
亲自尝试 »
您还可以通过将其设置为清空对象 undefined
:
例子
让 person = {firstName:“John”,lastName:“Doe”,年龄:50,eyeColor:“blue”};
person = undefined; // 现在值和类型都未定义
亲自尝试 »
Undefined 和 Null 之间的区别
undefined
和null
价值相等,但类型不同:
typeof undefined //未定义
typeof null //对象
null === undefined // false
null == undefined // true
亲自尝试 »