预定义对象,就是指在ES中内置的一些对象,他们集成了ES编程中常用的功能。
有的对象可以作为类(class),通过与new关键字作用,生成新的对象。
如:
~~~
var obj = new Object();//var obj={}
var arr = new Array();//var arr=[]
~~~
# 类型与类
这里的类型指的是原始值的类型,这里的类,在ES中指的是能通过new来生成对象的对象。
总之,类型跟类是不一样的东西。
ES还内置了几个与原始类型一样名字的对象。如:
* Boolean
* String
* Number
然而他们的实例是对象,不是值。
~~~
new Boolean(true) == true;//true
new Boolean(true) === true;//false
new String("ES") == "ES";//true
new String("ES") === "ES";//false
new Number(2017) == 2017;//true
new Number(2017) === 2017;//false
~~~
String类构造出的对象,有着很丰富的操作函数。
~~~
console.dir("ES");
console.dir(new String("ES"));
~~~
![](https://box.kancloud.cn/a6899549ba2fb307f3d4a44fdea62797_297x310.jpg)