js中字符串常用方法:
substring(start开始的索引,end结束位置的索引)截取两个下标之间的字符,截取的位置不包含结束位置的字符,只写一个参数表示从开始位置截取到最后

var str='abcdef'
    console.log(str.substring(1))  //bcdef
    console.log(str.substring(1,3))  //bc
    console.log(str.substring(2,-2)) //ab str.substring(2,-2)==str.substring(0,2)
    //输入负值时将负值变为0,哪个较小作为开始位置

slice(start开始位置的索引,end结束位置的索引)

var str='abcdefg';
    console.log(str.slice(1,3))   //bc
    console.log(str.slice(0))   //abcdefg
    输入负值时 值与字符串的长度相加
    console.log(str.slice(-2,-1))  //f    str.slice(-2,-1)==str.slice(7+-2,7+-1)
    第二个参数绝对值大于字符串的长度时,返回''
    var arr=[
        {name:0},
        {name:1},
        {name:2},
        {name:3},
    ]
    console.log(arr.slice(1,2))   //[{name:1}]

substr(start开始位置的索引,end返回字符的个数)

var str ='abcdefg'
    console.log(str.substr(1))  //bcdefg
    console.log(str.substr(1,1))  //b
    // 输入负值时 start参数与字符串的长度相加 ,end为负时参数变为0
    console.log(str.substr(-1)) //g       // str.substr(-1)==str.substr(7+-1)

charAt(index) 方法返回指定索引位置处的字符。

var str='abce'
    console.log(str.charAt(1))  //c

indexOf(需要查找的字符串对象) 返回这个查找的String第一次出现的位置,如果没有找到,返回-1,找到了返回当前索引

var str='abcdefe'
    console.log(str.indexOf('e'))   //4

lastIndexOf(需要查找的字符串对象) 返回这个查找的String最后一次出现的位置,如果没有找到,返回-1,找到了返回当前索引

var str='abcdefe'
    console.log(str.lastIndexOf('c'))  //2
    console.log(str.lastIndexOf('e'))  //6
    console.log(str.lastIndexOf('g'))  //-1

split(str) 将字符串以分割为数组

var str='abcdefg'
    console.log(str.split('')) // ["a", "b", "c", "d", "e", "f", "g"]
    console.log(str.split('b'))  // ["a", "cdefg"]
    console.log(str.split('a'))  // ["", "bcdefg"]

toLowerCase方法返回一个字符串,该字符串中的字母被转换成小写

toUpperCase方法返回一个字符串,该字符串中的所有字母都被转换为大写字母

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

var str='abcdefg'
    console.log(str.match('b'))  //["b", index: 1, input: "abcdefg", groups: undefined]

search() 方法检测字符串中指定字符串在字符串中起始位置配,第一个字符串的位置,找不到返回-1。

var str='abcdefg'
    console.log(str.search('f'))  //5

** replace() 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配**

var str='abcdefgae'  //将字符串中匹配到的第一个e替换成o
    console.log(str.replace('e','o'))   //abcdofga

js数组常用的方法:
** concat() 拼接一个或多个数组;返回拼接后的数组

join()     根据指定的分隔符(seperator)进行切割,返回一个字符串,参数缺省以逗号作为分隔符

  
  slice()	    选取数组的的一部分,并返回一个新数组 获取数组中部分元素并返回:  不会影响原数组


   以上三个方法不会影响原数组 **

push() 数组末尾添加一个或者多个元素,返回添加后的数组

// var arr=[1,2,3]
    // arr.push('ab','cd')
    // console.log(arr)  [1, 2, 3, "ab", "cd"]

unshift() 添加到最前面,添加一个或者多个元素, 返回添加后的数组

var arr=[1,2,3]
    arr.unshift('777','bbb')
    console.log(arr)   //["777", "bbb", 1, 2, 3]

shift()数组头部删除一个元素 返回处理后的数组

var arr=['a','b','c']
    arr.shift()
    console.log(arr)  ["b", "c"]

pop() 删除数组最后一个元素 返回处理后的数组

var arr =[1,2,3,4,5,6,'加油','啊']
    arr.pop()
    console.log(arr) [1, 2, 3, 4, 5, 6, "加油"]

reverse() 数组元素进行倒序排列

var arr =[1,2,3,4,5,6,'加油','啊']
    console.log(arr.reverse()) ["啊", "加油", 6, 5, 4, 3, 2, 1]

join() 数组转化为字符串

var arr=['a','b',3,4,5,6]
    console.log(arr.join(''))   //123456
    console.log(arr.join('_'))  //1_2_3_4_5_6
    console.log(arr)            //["a", "b", 3, 4, 5, 6]  不改变原数组

slice(start,end) 截取数组 从start(开始) 到end(结束 不包含)返回新数组,原数组不变

var arr=['a',1,'b','c',2]
    var arr2=arr.slice(1,3)
    console.log(arr2)    返回新数组,不包括结尾[1, "b"]
    console.log(arr)  原数组不变

concat() 连接两个或者多个数组,数组的拼接

var arr =['a',1,'b','c']
    var arr2 =[1,2,3,4,5,6,'加油','啊']
    console.log(arr.concat(arr2))   // ["a", 1, "b", "c", 1, 2, 3, 4, 5, 6, "加油", "啊"]

splice() 可以让数组进行删除 添加 替换等

//一个参数时候, 从参数位置截取 填写负数类似上面str slice 返回截去后的数组 原数组变化了
    var arr =[1,2,3,4,5]
    console.log(arr.splice(1))   //[2, 3, 4, 5]
    console.log(arr)       原数组变化了     //[1]
    var arr =[1,2,3,4,5]
    console.log(arr.splice(-1))  // [5]

两个参数时候, 截取splice(开始位置,截取个数) //返回截取后的数组,原数组变化了

var arr =[1,2,3,'a','b']
    console.log(arr.splice(1,3))   //[2, 3, "a"]
    console.log(arr)  //原数组变化了 [1, "b"]
    var arr=[1,2,3,'a','b']
    console.log(arr.splice(0,1))   //[1]
    console.log(arr)   //原数组变化了[2, 3, "a", "b"]
    var arr=[1,2,3,'a','b']
    console.log(arr.splice(arr.length-1,1))  //["b"]

添加 原数组增加

var arr=['a',1,2,3]
    console.log(arr.splice(1,0,'加油'))   //[]
    console.log(arr)   //["a", "加油", 1, 2, 3]

替换

var arr =[1,2,3,4,5,6,7,8,9]
    console.log(arr.splice(1,2,'a','b')) //[2, 3]
    console.log(arr)   //[1, "a", "b", 4, 5, 6, 7, 8, 9]
    arr.splice(0,0,1) 等同于arr.unshift(1);
    arr.splice(arr.length,0,1) 等同于 arr.push(1)

forEach((item数组中的内容,key索引,array当前数组本身)=>{})

var arr=[1,2,3]
    arr.forEach(function(item,key,array){})
    arr.forEach((item,key,array)=>{       
        console.log(item)    //1  2  3 
    })

map方法() 有返回值return

var arr=[
        {id:1,name:'小明'},
        {id:2,name:'小李'},
        {id:3,name:'小三'},
    ]
    arr.map(function(item,key,array){
        console.log(item)   //{id: 1, name: "小明"} {id: 2, name: "小李"} {id: 3, name: "小三"}
        return item.name
    })

arr.sort(a,b)排序 a-b为从小到大 b-a从大到小

var arr=[1,6,5,2,3,8,0]
    arr.sort(function(a,b){
        return a-b
    })
    console.log(arr)    //[0, 1, 2, 3, 5, 6, 8]

    var arr=[1,6,5,2,3,8,0]
    arr.sort(function(a,b){
        return b-a
    })
    console.log(arr)    //[0, 1, 2, 3, 5, 6, 8]