ECMAScript引用类型
在ECMAScript中,变量可以存在两种类型的值,即原始类型值和引用类型值。原始类型值直接存储变量访问的地址,引用类型值存储的是一个指针(point),指向存储对象的内存处。引用类型通常是类,也就是说引用类型所处理的是对象。
1、Object对象
ECMAScript中所有对象都由Object对象继承而来,Object对象中的所有属性和方法都会出现在其他对象中。
Object对象属性
constructor属性 :返回对创建此对象的数组函数的引用,constructor属性始终指向创建当前对象的构造函数。例如:
var test=new Array();
document.write(test.constructor==Array);//结果true
prototype属性 : 返回对象类型原型的引用。原型最简单的用法是动态扩展类的方法和属性。例如:
//创建Car类,有一个Color属性和一个获得Color属性值的方法getColor()
function Car(color){
this.Color=color;
this.getColor=function(){
return this.Color;
}
}
Car.prototype.Speed=150;//增加属性
Car.prototype.getSpeed=function(){//增加方法
return this.Speed;
};
var oCar=new Car("red");
document.write(oCar.getColor()+oCar.getSpeed());//输出“red”和150
Object对象常用的方法
hasOwnProperty(Property)方法:判断对象是否有某个特定的属性,必须用字符串指定该属性。例如
document.write(oCar.hasOwnProperty('Color'));//输出true
isPrototypeOf(object)方法:判断该对象是否为另一个对象的原型,该方法可以用于确定对象的类。例如
var a=new Array();
document.write(Object.prototype.isPrototypeOf(a));//输出false
document.write(Array.prototype.isPrototypeOf(a));//输出true
document.write(Object.prototype.isPrototypeOf(Array.prototype));//输出true
toString()方法:返回对象的字符串表示。
valueOf()方法:返回与对象相关的原始值(如果这样的值存在)。对于类型Object的对象,没有原始值,因此该方法返回这些对象的自身。
例子:
var iNum=1; document.write(iNum.valueOf());//输出1
var str="1"; document.write(str.valueOf());//输出“1”
function fn(){}; document.write(fn.valueOf());//返回函数本身
arr=new Array(1,2); document.write(arr.valueOf());//输出数组
obj=new Object(); document.write(obj.valueOf());//返回对象自身
Number对象
Number对象方法
toFixed(num):把Number四舍五入为指定小数位数的数字。num规定小数的位数,是0~20之间的值,包括0和20.
String对象常用方法
charAt()和charCodeAt()方法:
这两个方法访问的是字符串中的单个字符,都只有一个参数,即要操作的字符的位置。
charAt()方法返回的是包含指定位置处的字符的字符串,charCodeAt()方法返回该字符的字符编码
例子:var str=new String('hello world');
document.write(str.charAt(1)+','+str.charCodeAt(1));//输出“e,101”
indexOf()和lastIndexOf()方法:
这两个方法返回的都是指定的子串在另一个字符串中的位置。如果没有找到子串,则返回-1。indexOf()从头开始检索,lastIndexOf()从结尾开始检索。
slice()和subString()方法:
这两个方法返回的都是要处理的字符串的子串,都接受一个或两个参数。第一个参数子串的起始位置,第二个参数子串的终止位置(子串不包含终止位置的字符)。都不改变String对象本身的值,只返回基本的String值。
差异:在第一个参数为负值时,slice()方法会用字符串的长度加上参数,subString()方法则将其作为0处理。
instanceof运算符:
用于识别正在处理的对象的类型,能够确定对象为某种特定类型。
var oStr=new String('hello world');
document.write(oStr instanceof String);//输出true;