码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 字符串对象

时间:2020-03-12 23:19:53      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:写代码   body   字符转换   实现   uppercase   html5   索引   内容   它的   

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 字符串对象

标签:写代码   body   字符转换   实现   uppercase   html5   索引   内容   它的   

原文地址:https://www.cnblogs.com/echol/p/12482223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!