js内置对象之String常用的对象方法截取、拼接、转换、返回字符位置、返回指定位置的字符

1.基本包装类型
把简单数据类型包装成为了复杂数据类型
比如说 String类型
var str=‘andy’;
console.log(str.length);//结果为4
按理说对象才有属性和方法也就是复杂数据类型才有属性和方法。js引擎把string包装成了复杂类型
我们可以通过主动包装为复杂类型如下
//生成临时变量包装成复杂类型
var temp =new String(‘andy’);
//把临时变量的值给str
str =temp;
//销毁临时变量temp
temp=null;
js中有三中基本类型可以包装为复杂类型分别为 String 、number、boolean
2.字符串不可变
指里面的值不可变,虽然看起来内容变了但是空间依然存在,在平常尽量不要大量的给字符串从新赋值和字符串之间拼接,可以看下图。
可以根据下面的代码去体验一下大量字符串拼接后的网页加载速度
var str=’ ‘;
for (var i=0;i<10000000;i++){
str+=i;
}
console.log(str);//这个需要大量事件来显示
2.根据字符返回位置
字符串的所有方法,都不会修改字符串本身(因为字符串是不可变的)操作完成后回返回一个新的字符串。
indexOf(‘要查找的字符’,‘开始的位置’);返回指定内容在原字符串中的位置,如果找不到就返回-1,开始的位置是index索引号
举例:var str=‘我是大帅哥,大帅哥是谁?’;
console.log(str.indexOf(‘哥’,4))//4代表从下标索引4开始查找。
lastIndexOf();从后往前找,只找第一个匹配的。
有一个案例查找一个元素出现的位置为次数
var str=‘abcdeojkloppo’;
var index=str.indexOf(‘o’);
var num=0;
while(index!-1){
console.log(index);
num++;
index =str.indexOf(‘0’,index+1);
}
console.log(‘重复元素o出现的次数是:’+num);
3.根据位置返回字符
3.1 charAt(index)
返回指定位置的字符(index字符串的索引号)
基本语法:str.charAt(0)
举例 var str=‘abcde’;
vonsole.log(str.charAt(‘3’))//结果为d
3.2 charCode(index)
获取指定位置处的字符的ASCII码(index索引号)
基本语法:str.charCodeAt(0);
举例 var str=‘abcde’;
console,log(str.charCode(0))//返回的结果是 字母a 相对应的ASCII码为97
ASCII码就是键盘上每个按键相对应的数字
3.3 str[index] 获取指定位置处字符
这是H5新增的 只有ie8 H5支持等价于charAt();
4.案例统计一个字符串出现次数最多的字符并统计出现的次数 思路如下
利用charAt()遍历这个字符串
把每个字符串都存储给对象如果对象没有该属性就为1如果存在了就+1
遍历对象得到最大值和该字符
var str=‘abcabdoefidesado’;
var obj={};
for (var i=0;i<str.length;i++){
var chars=str.charAt(i);
if(obj[chars]){
obj[chars]++;//如果出现过一次的字符加1
}else {
obj[chars]=1;//没有出现的字符次数给1
}
}
//遍历对象
var max=0;
var ch=’’;
for(var k in obj){
if(obj[k]>max){
max=obj[k];
ch=k;
}
//k得到的是属性名 obj[k]是属性值
}
console.log(max);
console.log(‘出现最多字符是’+ch);
5. 拼接字符串 concat(str1,str2,…)
用于连接两个或者多个字符串评级字符串等效于平时用的+ +但是这个更常用。
var str=‘abcde’;
console.log(str.concat(‘大帅哥’));
6. substr(start,length)
从start位置开始(索引号),lenght取得个数,参数第一个是下标索引号。第二个是取几个
var str=‘abcde’;
cnsole.log(str.substr(2,2));//从索引下标为2的位置向后(自身也算一个)取两个结果为cd
7.截取slice(start,end)
从start位置开始截取到end位置到那时end位置取不到,参数都是下标索引号
var str=‘abcde’;
consoe.log(str.slice(1,3));//结果为bcd
8. substring(start ,end)
从start位置开始截取到end位置到那时end位置取不到,参数都是下标索引号和slice相同,但是不接受负值。
9.替换字符串 replace(‘被替换的字符’,‘替换的字符’)
var str=‘abcde’;
consoe.log(str.replace(‘a’,‘F’));//只会替换第一个位置的a后面的不替换
如果想要替换多个字符可以用循环进行
var str=‘abcade’;
while(str.indeOf(‘a’)!
-1){
str= str.replcae(‘a’,‘F’);
}
console.log(str);
10.字符转化为数组 split(‘分隔符’)和join();是相反的把数组转化为字符串
var str=‘red,yellow,pink,blue’;
console.log(str.split(’,’));
11.转换大写和小写
toUpperCase();转化大写
头LowerCase();转化为小写

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值