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 字符串对象的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 代码片段

带有神秘附加字符的 Javascript Date getTime() 代码片段

48个值得掌握的JavaScript代码片段(上)

JavaScript实用功能代码片段

常用Javascript代码片段集锦

VSCode自定义代码片段——JS中的面向对象编程