计算机程序的实质很大程度上可以说是机器对各种信息(值)的操作与读写。在JavaScript中,存在多种类型的值,这些值分成两大类:Primitive(基本类型)和Object(对象)。
Primitive
JavaScript中Primitive有5种类型:
1.Number。所有的数字,无论是整数还是小数,均为Number类型。 2.String。字符串类型。 3.Boolean。布尔类型,true或者false。 4.null。此类型只有null一个值。 5.undefined。此类型只有undefined一个值。
Object
除了Primitive,JavaScript中其它任何值均为Object(对象)。Object有以下几种:
1.JSON键值对对象。如{“name”:”Bob”,“age”:42}。 2.数组(array)。如[1,4,5,7,9]。 3.函数(function)。如function(){return true;}。在JavaScript中函数有两种存在形式:1. 可执行代码块;2. 类(Class)的构造器(constructor)。无论是以哪种形式存在,函数(function)始终都是对象。
JS自带全局对象
为了方便程序编写,JavaScript自带一个全局对象,该全局对象拥有以下7个成员变量,其类型均为Object:
1.Math。可以通过调用Math对象的方法来完成一系列复杂的数学运算。 2.Number。可以通过访问Number对象的成员变量来获取一些特殊值。 3.Array。数组对象的构造函数。 4.Function。函数对象的构造函数。 5.Date。日期对象的构造函数。 6.RegExp。正则表达式对象的构造函数。 7.Error。错误对象的构造函数。
在进行程序编写时,由于可以直接访问上述7个变量,因此也可以将它们当作全局对象来使用。
Immutable与Mutable
Primitive与Object有一个泾渭分明的特性:所有的Primitive都是Immutable的,所有的Object都是Mutable的。以String类型为例,调用String的方法对其进行编辑后,JavaScript会将编辑后的结果保存在一个新的String对象中,原String对象不会有任何改变:
实验
在JavaScript中,可以通过使用typeof关键词来获取某个值的类型。
获取数字的类型:
获取字符串的类型:
获取布尔值的类型:
获取null的类型:
获取undefined的类型: