原生对象
JS拥有强大的类型系统,主要包括原生对象、宿主对象和浏览器拓展对象。
原生对象分为两类:原始类型和对象类型。原始类型又分为两类,一类是空值,一类是包装对象;对象类型也可以分为两类:一类是构造器对象,一类是单体内置对象。
原始类型
空值(2种)
与其他语言不同,JS表示空值的值有两个,分别是undefined和null。逻辑上,undefined表示原始类型的空值,null表示对象类型的空值。
包装对象(3种)
字符串string、数字number、布尔值boolean虽然属于原始类型,但是由于其包装对象的性质,可以调用属性和方法。
对象类型
构造器对象(9种)
普通的对象是命名值的无序集合,但是通过不同的构造器,JS定义了功能各异的多种对象,包括对象Object、函数Function、日期Date、数组Array、错误Error、正则RegExp。
[注意]如果显式地使用new 构造器函数来定义包装对象,那么字符串String、数字Number、布尔值Boolean也属于构造器对象。
单体内置对象(4种)
单体内置对象包括Math、JSON、全局对象window和arguments这四种。它们不需声明或者使用构造器构造,直接在相应场景使用即可。