个人技术分享

字符串创建

1.字面量创建

        var 字符串名=字符串

2.内部构造函数创建

        var 字符串名=new String('字符串')

length属性

        只能读取不能设置

        var str='abcdfegfgl'
        console.log(str.length) //10
        str.length=5    
        console.log(str)    //不能写  abcdfegfgl

index属性

        只能读不能设置

        var str='abcdfegfgl'
        console.log(str[1]) //b
        str[1]="A"
        console.log(str)    //不能写  abcdfegfgl

字符串常用方法

charAt()

        语法:字符串名.cartAt(索引值)-----索引值默认为0

        作用:获取对应索引位置的字符

        返回值:返回索引对应的值,没有则返回空字符串

        var str='abcdfegabc'
        console.log(str.charAt(2))  //a
        console.log(str.charAt(2))  //c
        console.log(str.charAt(12))  //""
charCodeAt()

        语法:字符串名.charCodeAt(索引值)-----索引值默认为0

        作用:将对应索引位置的字符转为unicode编码

        返回值:返回转好的编码,没有则返回NaN

        var str='abcdfegabc'
        console.log(str.charCodeAt())  //97
        console.log(str.charCodeAt(2))  //99
        console.log(str.charCodeAt(12))  //NaN
toUpperCase()

        语法:字符串名.str.toUpperCase()

        作用:将所有字符转为大写

        返回值:返回转好的字符

toLowerCase()

        语法:字符串名.str.toUpperCase()

        作用:将所有字符转为小写

        返回值:返回转好的字符

        var str='AbcdFegabc'
        console.log(str.toUpperCase())  //ABCDFEGABC
        console.log(str.toLowerCase())  //abcdfegabc
substr()

        语法:字符串名.substr(开始索引,截取个数)

        作用:截取字符串

        返回值:返回截取的字符串

        var str='AbcdFegabc'

        //都不写则截取整个字符串
        console.log(str.substr())  //AbcdFegabc

        //只写开始索引表示从开始索引到字符串末尾
        console.log(str.substr(3))  //dFegabc
        
        //都写表示从开始索引截取几个字符
        console.log(str.substr(1,3))  //bcd
substring()

        语法:字符串名.substring(开始索引,结束索引)

                    ——包含开始索引的值,不包含结束索引的值

        作用:截取字符串

        返回值:返回截取的字符串

        var str='AbcdFegabc'
        console.log(str.substring())  //AbcdFegabc
        console.log(str.substring(3))  //dFegabc
        console.log(str.substring(1,3))  //bc
        console.log(str.substring(-2,3))  //Abc
slice()

        语法:字符串名.slice(开始索引,结束索引)或 字符串名.slice(负的开始索引)

                   ——包含开始索引的值,不包含结束索引的值

        作用:截取字符串

        返回值:返回截取的字符串

        var str='AbcdFegxyz'
        console.log(str.slice())  //AbcdFegxyz
        console.log(str.slice(3))  //dFegxyz
        console.log(str.slice(1,3))  //bc

        //和substring的区别,当索引为负值
        //substring还是截取整个字符串
        //slice表示从倒数第几个开始截取
        console.log(str.substring(-2))  //AbcdFegxyz
        console.log(str.slice(-3))  //xyz
split()

        语法:字符串.split(分隔符,前几个数组)

        作用:按照分隔符将字符串分割

        返回值:返回分割好的数组

        var str1='AbcdFegxyz'
        console.log(str1.split(""))  //['A', 'b', 'c', 'd', 'F', 'e', 'g', 'x', 'y', 'z']
     
        var str2='AbcdFegxyz'
        console.log(str2.split())  //['AbcdFegxyz']

        var str3='Ab cd Fe gx yz'
        console.log(str3.split())    //['Ab cd Fe gx yz']
        

        var str4='Ab|cdFegxyz'
        console.log(str4.split("|")) //['Ab', 'cdFegxyz']   
        
        var str5='Ab|cdFegxyz'
        console.log(str5.split("|",1)) //['Ab']   
concat()

        语法:字符串.concat('字符串')

        作用:拼接字符串

        返回值:拼接好的字符串

        var str='Ab'
        console.log(str.concat("拼接的"))   //Ab拼接的
indexOf()

        语法:字符串.indexOf('字符')

        作用:按照从前向后的顺序查找字符串的索引

        返回值:有返回索引值,没有返回-1

        var str='AbcDeF AgHiJkLmN'
        console.log(str.indexOf('A'))   //0
        console.log(str.indexOf(' '))   //6
        console.log(str.indexOf(1))   //-1
lastIndexOf()

        语法:字符串.lastIndexOf('字符')

        作用:按照从后向前的顺序查找字符串的索引

        返回值:有返回对应的索引值,没有返回-1

        var str='AbcDeF AgHiJk LmN'
        console.log(str.lastIndexOf('A'))   //7
        console.log(str.lastIndexOf(' '))   //13
        console.log(str.lastIndexOf(1))   //-1
includes()

        语法:字符串.includes('字符')

        作用:判断字符串中是否含有某字符

        返回值:true/false

        var str='AbcDeF AgHiJk LmN'
        console.log(str.includes("Abc"))   //true
        console.log(str.includes("ABC"))   //false
trim()

        语法:字符串.trim()

        作用:去除字符串前后空格

        返回值:返回去除空格后的字符串

trimStart()/trimLeft()

        语法:字符串.trimStart() / 字符串.trimLeft()

        作用:去除字符串开始位置的空格

        返回值:返回去除空格后的字符串

trimEnd()/trimRight()

        语法:字符串.trimEnd() /  字符串.trimRight()

        作用:去除字符串结束位置的空格

        返回值:返回去除空格后的字符串

        var str='  AbcDeF AgHiJk LmN    '
        console.log('----'+str.trim()+'----')          //----AbcDeF AgHiJk LmN----
        console.log('----'+str.trimStart()+'----')     //----AbcDeF AgHiJk LmN    ----
        console.log('----'+str.trimLeft()+'----')      //----AbcDeF AgHiJk LmN    ----
        console.log('----'+str.trimEnd()+'----')       //----  AbcDeF AgHiJk LmN----
        console.log('----'+str.trimRight()+'----')     //----  AbcDeF AgHiJk LmN----
replace()

        语法:字符串.replace('要换下的字符','要换上的字符')

        作用:将字符串内第一个满足换下字符的片段替换成换上的字符

        返回值:替换好的字符串

        var str='13849328493'
        console.log(str.replace('3','A'))   //1A849328493

查询字符串

类似于:'key = value& key1 = value1&key2 = value2'

练习:

        将查询字符串转为对象

        var str='name=zhangsan&age=13&sex=男'
        var arr=str.split('&')    //arr=['name=zhangsan', 'age=13', 'sex=男']
        var strObj={}
        arr.forEach(function(item){    //对arr进行遍历
            strObj[item.split('=')[0]]= item.split('=')[1]
        })
        console.log(strObj) //{name: 'zhangsan', age: '13', sex: '男'}

json格式字符串

类似于:{ "username ": "tom" ,"age":18}

js对象:{ username: "tom" ,age:18}

json转js

        JSON.parse()

js转json

        JSON.stringify()

 console.log(JSON.parse('{"username":"tom","age":18}'))  //{username: 'tom', age: 18}
 console.log(JSON.stringify({ username: "tom" ,age:18}))  //{"username":"tom","age":18}