8.2 String对象的属性
视频讲解
在String对象中有3个属性,分别是length、constructor和prototype。下面对这几个属性进行详细介绍。
8.2.1 length属性
length属性用于获得当前字符串的长度。该字符串的长度为字符串中所有字符的个数,而不是字节数(一个英文字符占一个字节,一个中文字符占两个字节)。
语法如下:
stringObject.length
参数说明。
stringObject:当前获取长度的String对象名,也可以是字符变量名。
说明
通过length属性返回的字符串长度包括字符串中的空格。
例如,获取已创建的字符串对象newString的长度。代码如下:
01 var newString=new String("abcdefg"); //创建字符串对象 02 var p=newString.length; //获取字符串对象的长度 03 alert(p); //输出字符串对象的长度
运行结果为:
7
例如,获取自定义的字符变量newStr的长度。代码如下:
01 var newStr="abcdefg"; //定义一个字符串变量 02 var p=newStr.length; //获取字符串变量的长度 03 alert(p); //输出字符串变量的长度
运行结果为:
7
【例8.01】金庸先生的武侠小说深受广大武侠迷们的喜爱,在小说中无论是正面人物还是反面人物都很有特色。现提取小说中的一些主要人物,如张无忌、郭靖、东方不败、乔峰、令狐冲、完颜洪烈、杨过、金轮法王、韦小宝。
将以上人物按名称的字数进行分类,并将分类结果输出在页面中。代码如下:(实例位置:资源包\源码\08\8.01)
01 //定义人物数组 02 var arr=new Array("张无忌","郭靖","东方不败","乔峰","令狐冲","完颜洪烈","杨过","金轮法王", "韦小宝"); 03 var twoname=""; //初始化二字人物变量 04 var threename=""; //初始化三字人物变量 05 var fourname=""; //初始化四字人物变量 06 for(var i=0; i<arr.length; i++){ 07 if(arr[i].length==2){ //如果人物名称长度为2 08 twoname+=arr[i]+" "; //将人物名称连接在一起 09 } 10 if(arr[i].length==3){ //如果人物名称长度为3 11 threename+=arr[i]+" "; //将人物名称连接在一起 12 } 13 if(arr[i].length==4){ //如果人物名称长度为4 14 fourname+=arr[i]+" "; //将人物名称连接在一起 15 } 16 } 17 document.write("二字人物:"+twoname); //输出二字人物 18 document.write("<br>三字人物:"+threename); //输出三字人物 19 document.write("<br>四字人物:"+fourname); //输出四字人物
运行程序,结果如图8.1所示。
图8.1 为金庸小说人物名称按字数分类
8.2.2 constructor属性
constructor属性用于对当前对象的构造函数的引用。
语法如下:
stringObject.constructor
参数说明。
stringObject:String对象名或字符变量名。
例如,使用constructor属性判断当前对象的类型。代码如下:
01 var newStr=new String("One World One Dream"); //创建字符串对象 02 if (newStr.constructor==String){ //判断当前对象是否为字符串对象 03 alert("这是一个字符串对象"); //输出字符串 04 }
运行结果如图8.2所示。
图8.2 输出对象的类型
说明
以上例子中的newStr对象,可以用字符串变量代替。constructor属性是一个公共属性,在Array、Date、Boolean和Number对象中都可以调用该属性,用法与String对象相同。
8.2.3 prototype属性
prototype属性可以为字符串对象添加自定义的属性或方法。
语法如下:
String.prototype.name=value
参数说明。
name:要添加的属性名或方法名。
value:添加属性的值或执行方法的函数。
例如,给String对象添加一个自定义方法getLength,通过该方法获取字符串的长度。代码如下:
01 String.prototype.getLength=function(){ //定义添加的方法 02 alert(this.length); //输出字符串长度 03 } 04 var str=new String("abcdefg"); //创建字符串对象 05 str.getLength(); //调用添加的方法
运行结果如图8.3所示。
图8.3 输出字符串的长度
说明
prototype属性也是一个公共属性,在Array、Date、Boolean和Number对象中都可以调用该属性,用法与String对象相同。