JavaScript拥有内置对象和自定义对象,事实上各种数据类型的变量都属于一种对象,变量在声明和赋值后马上拥有对应的方法和对象。
1.JavaScript内置对象的种类
JavaScript对象依照建立方式不同可分为使用变量声明的隐性对象和使用new命令对立对象副本的显性对象。
隐性对象(Implicit[im'plisit] Objects)
JavaScriptt的各种数据类型变量,在声明和赋值后就是一个对象,例如数字、字符串和布尔数据类型的变量等,如下所示:
1.var str="JavaScript学习笔记";
上述程序代码声明变量str是一个隐性String对象,虽然可以使用String对象的方法,但是隐性对象并不支持prototype属性,如下所示:
1.str.prototype.count;
上述程序代码会导致JavaScript程序运行时出现错误,而且隐性对象也不支持Expando属性,无法任意扩展对象的属性。
显性对象(Explicit[iks'plisit] Objects)
JavaScript的对象如果使用new命令建立对象副本,则此对象就是一个显性对象,如下所示:
1.var str=new String("JavaScript学习笔记");
上述程序代码建立的也是一个字符串变量,不过这是一个String对象,显性对象同时支持Expando和Prototype属性。
2.JavaScript的内置对象
JavaScript提供11种内置对象。
(1)Boolena['bu:lɪən]对象
Boolena对象是一种数据类型,对象只单纯地提供构造函数,可以用来建立布尔数据类型的对象,如下所示:
1.objBoolean=new Boolean();
上述程序代码建立布尔对象或称为布尔变量,括号内如为false、0、null、NaN或空字符串,则布尔值为false,否则为true。
当使用var命令声明布尔变量并且指定其值时,布尔变量将自动转换成Boolean对象。
(2)Function对象
JavaScript的函数就是一个Function对象,函数的建立方法如下:
- function mod(x,y)
- {
- return(x % y);
- }
上述程序段是一个余数函数,也可以使用new命令建立函数的Function对象,如下所示:
- var mod=new Function("x","y","return(x%y)");
上述程序代码建立一个函数mod(),不论使用哪种方法建立函数,都可以使用相同的程序代码调用它,如下所示:
- value=mod(4,5);
Function对象就是函数,如果函数拥有参数,则这些传入的参数就是arguments对象。
3.Global['ɡləubəl]对象
Global对象不能使用new命令建立,在Script引擎初始化后就会自动建立此对象,Global对象有两个属性
属性 | 说明 |
Infinity[in'finiti] | 获取Number POSITIVE_INFINITY的初始值 |
NaN | 获取Number.NaN的初始值 |
- Infinity
- Nan
4.Number['nʌmbə]对象
Number对象类似于Boolean['bu:lɪən]对象,可以建立数值数据类型的变量,如下所示:
- objnum=new Number(value);
上述程序代码建立了一个Number对象,参数value为数值变量的值,使用Number对象的目的是为了可以使用toString()方法将数值转换成字符串,Number对象属性的语法,如下所示:
属性 | 说明 |
MAX_VALUE | 传回Javascript数值的最大值,大约是1.79E+308 |
MIN_VALUE | 传回JavaScript最接近0的值,大约是5.00E-324 |
NaN | 这是一个特殊值,表示表达式或变量不是数值 |
NEGATIVE_INFINITY | 传回比(-Number.MAX_VALUE)更大的负值 |
POSITIVE_INFINITY | 传回比Number.MAX_BALUE更大的正值 |
Object对象可以建立JavaScript支持的对象,如下所示:
- Objobject=new Object(value);
上述程序代码建立了一个Object对象,参数value如果是String,则是一个字符串对象,若是Boolen则是Bolean对象。
6.RegExp对象
RegExp对象是JavaScript的正规语言(Regular Expression)对象,此对象无法直接使用new命令建立。