字符串

概述:

串也是数据结构,保存同样的内容。

在js中,字符串属于一个值类型(值类型是常量,常量不能变)

字符串是不可变的

字符串的增删改查不能针对与本身,而是返回一个新的字符串。

声明字符串:

1.值类型赋值

var str =‘hello world’

2.以new关键词声明(引用了对应的值的地址)

var str =new String ("abc");

es6新增

var a ='jack'
var str =`hello string${a}` //反引号   以变量来解析${}
console.log(str); //hello stringjack
new String()和String()区别:

newstring

new String是构建一个String对象(引用数据类型,有地址指向)

String单纯的将对应传入的参数转为string类型(值类型)

字符串的属性:

length:返回字符串的长度(包含空格及换行)
 var str ="a b"
console.log(str,length) //3

通过下标来获取对应的字符串

var str ="abc"
console.log(str[0])//a

字符串的方法:(返回新字符串)

通过下标找字符串:(char字符)

charAt(下标)

varstr=“abc”
str.charAt(0) //a

charCodeAt(下标):返回字符的ASCII码

varstr=“abc”
str.charCodeAt(0) //97     效率更高,机器中本来就以ASCII码存储字符
通过字符串找下标
找不到返回-1 找到返回对应的下标值,类型为number

indeOf

varstr=“abc”
console.log(str,indexOf('a')) //0
console.log(str,indexOf('d')) //-1
//两个参数,(查询的字符串,开始查找的下标)默认返回从开始,第一个找到的字符串
console.log(str.indexOf('ab')) //0
console.log(str.indexOf( 'd')) //-1
console.log(str.indexOf( 'b',2)) //-1

var str = 'abbbccde'
console.log(str.indexOf( 'b",2)) //2
//从下标2开始找,找到第一个出现b的位置,在查找时将下标为2当做第一个

lastIndexOf()

console.log(str.lastIndexOf( 'b"))  //3
console.log(str.lastIndexOf( 'b",0)) //-1 从0的位置往前找
console.log(str.lastIndexOf( 'b",4)) //3
默认情况下,对应的后面的下标可以省略

自定义函数实现以上方法:



    <script>
        var searchStr = "abcdefabcde"
        function indexOf(str,index){
          if(!index){
              index=0;
          }
          var len=str.length;
          for(var i=index;i<searchStr.length-len;i++){
            var s=''
            for(j=0;j<len;j++){
                s+=searchStr[i+j];
              }
              if(s==str){
                  return i;
              }
          }
          return -1;
        }
        console.log(indexOf("bc",4));



        function lastIndexOf(str,index){
           if(!index||index!=0){
               index = searchStr.length-1; //默认为最后一个
           }
           var len = str.length;
           for(var i=index;i>=len;i--){
               var s='';
               for(var j=0;j<len;j++){
                   s+=searchStr[i-j];
               }
               if(s==str){
                   return i;
               }
           }
           return -1
        }
        console.log(lastIndexOf("bc",4));
    </script>

search() :同indexof一样,但支持正则表达式

var str=‘abc’
console.log(str.search(/ab/)) //正则表达式
console.log(str.search(/ab/,0)) 从0的位置开始查找,匹配正则
静态方法
(通过构造方法名直接调用的叫静态方法,由对应的static修饰)

fromCharCode :将对应的ASCII码转为字符串

var str = String.fromCharCode(97)
console.log(str)

concat :将多个字符串连接成一个字符串返回

var str=“hello”.concat("world")
console.log(str) //hello world
注:将多个数组连接成一个数组返回

支持正则的方法(4个)

search查找(找到返回下标,没找到返回-1)

replace 替换(将找到的字符串替换成一个新的字符串)

var str=“abca”
var str1 =str.replace("a","hello") //将第一个a替换成hello
console.log(str1)//hellobbca

substring substr 截取:

var str=“adcdef”
//substring[开始的下标,结束的下标)
console.log(str.substring(1)); //bcdef
console.log(str.substring(1,3)) //bc     ;截取不包含最后一个下标

console.log(str.substr(1))bcdef   ;默认截取到最后
console.log(str.substr(1,3))//bcd   从下标1开始,截取三个

split 分割 返回数组

var str= “1,2,3”
console.log(str.split()) //"1,2,3" 默认不分割,直接填入数组
console.log(str.split(",")); //["1","2","3"]

match 返回一个数组(匹配的内容)

var arr =str.match("a")  //默认只找第一个匹配的,加入数组
str.match("a")
console.log(arr);
 
posted @   岁新  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示