字符串
概述:
串也是数据结构,保存同样的内容。
在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);
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号