js之基本包装类型
为了便于操作“基本类型值”,JS 提供了三个特殊的引⽤类型:Boolean、Number、String。这些类型和其他引⽤类型相似,但同时也具备与各⾃基本类型相应的特殊⾏为。实际上:每当读取⼀个基本类型值的时候, “后台就会创建⼀个对应的基本包装类型的对象”,从能能够调⽤⼀些⽅法来操作这些数据。
1、String对象
String对象是基本类型,但是也是特殊的引⽤类型(基本包装类型:内部创建对象,可以调⽤它⾃⼰内部的特殊⾏为)
1、String是基本包装类型:
1var box ='Mr.Xiao';    //字⾯量创建⽅式
2
3 alert(box.substring(2)); //box 是基本类型,但是也是特殊的引⽤类型,在后台会创建⼀个基本包装类型的对象;;所以可以调⽤系统内置的函数
2、String对象不是引⽤类型(因为⽆法动态添加属性和⽅法)
1//注意这种简单类型不是引⽤类型(因为他们不能添加属性和⽅法)
2 box.name='xiao';
3 box.age=function(){
4return10;
5    }
6
7 alert(box.name);  //undefined
8 alert(box.age());  //报错
3、使⽤New修饰符创建的String对象就是Object引⽤类型的对象
new修饰符创建的对象是引⽤类型,可以动态添加属性和⽅法。
1var box =new String('Mr.Xiao');
2 box.name="xiao";
3 box.age=function(){
4return10;
5    }
6 alert(box.name);  //xiao
7 alert(box.age());  //10
8 alert(box.substring(2));  // .Xiao  也是可以执⾏的
4、String内部的⽅法和属性
演⽰⼀些常⽤的⽅法:
1》字符串截取函数
JS中的字符串截取函数:slice()、substring()、substr()函数。
1.都含有两个参数:
1var str ='Mr.Wang';
2 alert(str.charAt(3));//W
3 alert(str[3]);//W
4
5//截取字符串⽅法:slice()、substring()、substr()
6var str ='Mr.Wang';
7
8 alert(str.slice(2,4));//.W  索引从 2开始到 4结束截取字符串
9 alert(str.substring(2,4));//.W  效果同上
10 alert(str.substr(2,4)); //.Wan  从2开始截取长度为 4 的字符串
2.含有⼀个参数
这个时候效果就相同了,都是从索引开始位置⼀直截取到最后。
//如果只含有⼀个参数,他们的效果就相同了,,就是从索引位置⼀直到最后
alert(str.slice(2));//.Wang
alert(str.substring(2));//.Wang
alert(str.substr(2));//.Wang
3.当参数含有负数的时候
基本⽤不到就是了解⼀下⽽已
1//slice()翻译⽅式:⽤字符串长度加上负数的值得到的数字
2 alert(str.slice(2,-1));//.Wan  7+(-1)=6——》翻译之后是(2,6)
3 alert(str.slice(-2,-1));//n    翻译之后是(5,6)
4 alert(str.slice(-2));//ng  同样的翻译道理
5
6//substring()翻译⽅式:只要遇到负数就返回0,,如果前⾯的数字⼤于后⾯的数字,就将两个数字调换位置 7 alert(str.substring(2,-1)); // Mr  翻译结果:(1,2)
substring和slice
8
9//substr() 翻译⽅式:遇到负数直接返回0  ,但是不会调换位置
10 alert(str.substr(2,-1));  // 空字符串翻译结果:(2,0)
11
12
13//PS:在IE 下如果 substr() ⽅法参数传递负值那么就会返回全部字符串
14 alert(str.substr(-2));//Mr.Wang
2》indexOf()函数和lastIndexOf()函数
indexOf():获取第⼀个含有 "搜索字符串"的位置
lastIndexOf()  :从后⾯开始搜索到第⼀个  "搜索字符串"的位置
1var str ='Mr.Wang is a good Wang.Wang is a best Wang.';
2 alert(str.indexOf('Wang'));//
3  默认是索引为0  的位置开始搜索的
3
4 alert(str.lastIndexOf('Wang'));//28      默认是从最后开始搜索的
5
6
7 alert(str.indexOf('Wang',10));//18    第⼆个参数:开始搜索的索引位置
8 alert(str.lastIndexOf('Wang',30)); //23  从索引为 30 的位置开始向前⾯搜索
9
10//PS:如果没有到搜索字符串那么就会返回-1
实现业务:查询出上⾯的字符换“Wang”的所有的索引位置
var posArray=[];
var pos =str.indexOf('Wang');
while(pos>-1){
posArray.push(pos);
pos =str.indexOf('Wang',pos+1);
}
alert(posArray);
5、Boolean没有内置⽅法
6、Number内置⽅法
Number静态属性
Number对象的⽅法
上⾯使⽤⽅法和上⾯的基本相似,作⽤上⾯注明了。
7、基本包装类型的内部⽅法其实都是 prototype属性和⽅法,,也可以⾃⼰添加 1//可以添加原型属性和⽅法(所有实例共享的作⽤),,他内部的所有内置的⽅法都是原型⽅法 2 String.prototype.AddNum=function(){
3return this +'';
4    }
5var str ='xiao';
6 alert(str.AddNum());//
7
8var b=true;
9 Boolean.prototype.ReturnFalse=function (){
10return false;
11    }
12 alert(b.ReturnFalse());//false    可以添加原型⽅法

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。