JavaScript 字符串对象
Posted 梦若夕
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 字符串对象相关的知识,希望对你有一定的参考价值。
1.字符串的不可变
指的是已经存在的值,看似可以被改变,其实只是变量指向的地址改变了,内存中新开辟了一个内存空间,原来的值并未被抹去。
var str=‘pink‘;
str=‘red‘;
首先,内存中开辟了一个内存空间用来存放pink,str指向这个内存地址,当执行到第二句时,内存中开辟了一个新的空间用来存放red,str指向这个新的内存空间,用来存放pink的空间仍然存在,pink也并没有没抹去。
因此,编写代码时尽量不要多次对字符串重新赋值或拼接,会占用很多内存资源
2字符串对象
根据字符串返回位置
字符串的所有方法,都不会修改字符串本身(字符串是不可变的),操作完成后会返回新的字符串
方法名 | 说明 |
indexOf(‘要查找的字符‘,开始的位置) | 返回指定内容在源字符串中的位置,找不到返回-1,开始的位置是index索引号 |
lastIndexOf() | 从后往前找,只找第一个匹配的 |
indexOf()中开始的位置可不写,会默认从索引号为0的位置开始查找,遇到目标字符即返回索引号。当然lastIndexOf()中也可以添加开始查找的位置。
案例:
查找字符串中某元素出现的次数以及位置。
①:核心算法:先查找第一个核心元素出现的位置
②:如果indexOf()返回的值不是-1则继续往后
③:后面的查找,利用indexOf()的第二个参数,当前索引加1,继续查找
var str=‘天意让我遇见今生的你天‘; var index=str.indexOf(‘天‘); var number=0; while(index!==-1){ console.log(index); index=str.indexOf(‘天‘,index+1); number++; } console.log(number);
根据位置返回字符(重点)
方法名 | 说明 | 使用 |
charAt(index) | 返回指定位置的字符 | str.charAt(0) |
charCodeAt(index) | 获取指定位置处字符的ASCII码 | str.charCodeAt(0) |
str[index] | 获取指定位置处字符 | html5,IE8+支持和charAt()等效 |
charCodeAt()实际开发中使用它的目的:判断用户按下了哪个键,比如返回值为65,即可知用户按下了A键,可用于在游戏中按动某键来实现移动或其它功能的
案例:判断一个字符串中出现次数最多的字符,并统计其次数
①核心算法:利用charAt()遍历这个字符串
②把每个字符都存储给1对象,如果对象里没有该属性,则创建该属性且值为1,若有则属性值加1
③遍历对象,得到最大值和该字符
var str="aboodegotooforo"; var o={}; for(var i=0;i<str.length;i++){ var chars=str.charAt(i); if(o[chars]) o[chars]++; else o[chars]=1; } var max=0; var ch=‘‘; for(var k in o){ if(o[k]>max){ max=o[k]; ch=k; } } console.log(max); console.log(ch);
拼接以及截取字符串
方法名 | 说明 |
concat(str1,str2,str3..) | 用来拼接两个或多个字符串,等效于+,+更常用 |
substr(start,length) | 从start位置开始,length为取得个数 |
slice(start,end) | 从start位置开始,截取到end,end取不到 |
substring(start,end) |
从start位置开始,截取到end,end取不到,基本与 slice相同,但是不接受负值 |
var str="pink"; console.log(str.concat(‘red‘)); var str1=‘天意让我遇见今生的你‘; console.log(str1.substr(2,2));
替换字符串
replace(’被替换的字符‘,’替换为的字符‘)
var str="ababab" console.log(str.replace(‘a‘,‘b‘)); //将字符串中的a全部替换 while(str.indexOf(‘a‘)!==-1){ str=str.replace(‘a‘,‘b‘); } console.log(str);
字符转换为数组
spilt(‘分隔符‘)//spilt()中的分隔符取决于字符串中的连接方式,如下:
var str=‘pink,green‘; console.log(str.split(‘,‘)); var str1=‘pink&green‘ console.log(str1.split(‘&‘));
toUpperCase()//转换大写
toLowerCase()//转换小写
以上是关于JavaScript 字符串对象的主要内容,如果未能解决你的问题,请参考以下文章