浅识js ——字符串

63 阅读6分钟

js基础知识————字符串的创建与使用

一、字符串的创建方式

1. 字面量的形式创建字符串

var str = 'abc'

2. 内置构造函数的形式创建字符串

var str = new String()

二、字符串的length与下标

1.字符串的length

  • length与下标的含义与数组中的一样
  • length: 长度

2.字符串的索引(下标)

  • 索引(下标): 获取到字符串中指定位置的值

  • 注意: 字符串中通过索引能够获取到指定位置的值, 只不过获取到的值是 只读的,换句话说获取到的值, 能看不能改

        var str = 'abc'
        console.log(str.length) // 3
        console.log(str[1]) // b
        str[1] = 'Q'    // 因为字符串通过索引获取到的值是只读的, 我们修改是没用的, 所以这一行代码没意义
        console.log(str)    // abc
    

三、字符串的常用方法

1. charAt

  • 语法: 字符串.charAt(索引)

  • 作用: 查询指定下标的值

  • 返回值: 查询到的值, 如果没有查询到就是一个 空字符串

    // 1.查询指定下标的值——charAt
        var str = 'asdf'
        var str1 = str.charAt(1)
        console.log(str1)   //a
        var str2 = str.charAt(4)
        console.log(str2)   //空字符串,因为下标4没有
    

2. charCodeAt

  • 语法: 字符串.charCodeAt(索引)

  • 作用: 查询指定下标的值 对应的 十进制码

  • 返回值: 查询到的值对应的十进制码, 如果没有查询到会返回一个 NaN

     // 2.查询指定下标的值对应的十进制码——charCodeAt
        var str = 'asdf'
        var str1 = str.charCodeAt(1)
        console.log(str1)   //a
        var str2 = str.charCodeAt(4)
        console.log(str2)   //NaN,因为下标4没有
    

3. toLowerCase

  • 语法: 字符串.toLowerCase()

  • 作用: 将这个字符串转换为小写

  • 返回值: 转换后的字符串

    // 3.将字符串转换为小写——toLowerCase
            var str = 'ABCDE'
              // 写法一
            var str1 = str.toLowerCase()
            console.log(str1)   //abcde
              // 写法二
            console.log(str.toLowerCase())
    

4. toUpperCase

  • 语法: 字符串.toUpperCase()

  • 作用: 将这个字符串转换为大写

  • 返回值: 转换后的字符串

    // 4.将字符串转换为大写——toUpperCase
        var str = 'asdf'
          // 写法一
        var str1 = str.toUpperCase()
        console.log(str1)   //abcde
          // 写法二
        console.log(str.toUpperCase()) 
    

5. substr

  • 语法: 字符串.substr(开始索引, 多少个)
  • 作用: 截取指定的字符串
  • 返回值: 截取到的字符串
    • 注意: mdn 说明这个方法将来某一天可能会删除, 所以建议我们使用 substring

      // 5.截取指定字符串——substr()   //不推荐使用
            var str = 'asdfqwrtgh'
            var str1 = str.substr(0,5)
            console.log(str1)   //asdfq
    

6. substring

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

  • 作用: 截取指定的字符串

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

    • 注意:
      1. 参数包前不包后
      2. 结束索引可以不写, 相当于写了 length
    // 6.截取指定字符串——substring(开始索引,结束索引)  ( *包前不包后)
        var str = 'asdfqwrtgh'
        var str1 = str.substring(0,3)  //asd
        var str2 = str.substring(0)    //asdfqwrtgh 结束索引可以不写,默认为length
        console.log(str1)   //asd
        console.log(str2)   //asdfqwrtgh
    

7. slice

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

  • 作用: 截取指定字符串

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

    • 注意:
      1. 参数包前不包后
      2. 结束索引可以不写, 相当于写了 length
      3. 开始索引可以不写, 相当于写了 0
      4. 结束索引支持写负数, 相当于 length +1 负数
     // 7.截取指定字符串——slice(开始索引,结束索引)  ( *包前不包后)
        var str = 'asdfqwrtgh'
        var str1 = str.slice(0,3)
        var str2 = str.slice(0) //结束索引不写,默认为length
        var str3 = str.slice() //开始索引不写,默认为0
        var str4 = str.slice(0,-1) //结束索引可以写负数,为length + 负数
        console.log(str1)   //asd        
        console.log(str2)   //asdfqwrtgh        
        console.log(str3)   //asdfqwrtgh        
        console.log(str4)   //asdfqwrtg 
    

8. concat

  • 语法: 字符串.concat(数据1, 数据2, 数据3...)

  • 作用: 将字符串和 参数传递的数据 进行拼接

  • 返回值: 拼接后的字符串

     // 8.将字符串与传递数据进行拼接——concat
        var str = 'asc'
        var str1 = str.concat(1,'p','q')  
        console.log(str1)   //asc1pq
    

9. indexOf

  • 语法: 字符串.indexOf(数据, 开始下标)
  • 作用: 寻找数据在字符串中的位置
  • 返回值: 找到的时候返回下标, 找不到返回 -1
    • 注意: 第二个参数可以不传递, 默认为 0
   // 9.寻找数据在字符串中的位置 —— indexOf (从左向右)
        var str = 'ascqwe'
        var str1 = str.indexOf('a',1) 
        var str2 = str.indexOf('q') //不写默认从0开始 
        console.log(str1)   //  找不到,返回 -1
        console.log(str2)   //  3

10. lastIndexOf

  • 语法: 字符串.lastIndexOf(数据, 开始索引)

  • 作用: 寻找数据在字符串中的位置(从后往前/从右向左)

  • 返回值: 找到的时候返回下标, 找不到返回 -1

    • 注意: 第二个参数可以不传递, 默认为 length - 1
    // 10.寻找数据在字符串中的位置 —— lastIndexOf (从右向左)
        var str = 'ascqwe'
        var str1 = str.lastIndexOf('q',2) 
        var str2 = str.lastIndexOf('s',4) //不写默认从0开始 
        var str3 = str.lastIndexOf('c') //不写默认从length - 1开始 
        console.log(str1)   //  找不到,返回 -1
        console.log(str2)   //  1  
        console.log(str3)   //  2 
    

11. split

  • 语法: 字符串.split('符号')

  • 作用: 在 字符串中找到 '符号' 然后将这个字符串分隔, 并放在一个数组内

  • 返回值: 一个数组

    • 注意: 参数如果传递的是 空字符串('') 会将字符串全部分隔开
    // 11.在字符串中找到'符号',然后将这个字符串分隔开放在一个数组里 —— split 
        var str = 'asc, qw, e, hjx'
        console.log('原始数据',str)
        var str1 = str.split('q')  
        var str2 = str.split(' ')  //所查找的字符不会在字符串中显示
        var str3 = str.split('')  //空字符,会将数据全部分隔开
        var str4 = str.split('@') // 字符串中找不到的字符,会将字符串放入一个新的数组中
        var str5 = str.split('p') 
        console.log(str1)   //  ['asc, ', 'w, e, hjx']
        console.log(str2)   //   ['asc,', 'qw,', 'e,', 'hjx']
        console.log(str3)   //  [字符串所有数据全部分隔开,组成新的数组 (15个)] 
        console.log(str4)   //  ['asc, qw, e, hjx']   
        console.log(str5)   //  ['asc, qw, e, hjx']   
    

12. trim

  • 语法: 字符串.trim()

  • 作用: 去掉字符串两侧的空格

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

     //12.去掉字符串两边的字符串————trim
        var str = ' a c d '
        var str1 = str.trim()
        console.log(str1)
    

13. trimStart / trimLeft

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

  • 作用: 去掉字符串开始(左侧)的空格

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

    //13.去掉字符串左边的字符串————trimLeft/trimStart
        var str = ' a c d '
        var str1 = str.trimLeft()
        console.log(str1)
    

14. trimEnd / trimRight

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

  • 作用: 去掉字符串结束(右侧)的空格

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

     //14.去掉字符串右边的字符串————trimRight/trimEnd
            var str = ' a c d '
            var str1 = str.trimEnd()
            console.log(str1)
    

15. includes

  • 语法: 字符串.includes(字符串片段)
  • 作用: 判断 当前字符串中, 是否拥有指定字符串片段
  • 返回值: 一个布尔值
    • true -> 拥有
    • false -> 没有
    //15.判断字符串中是否拥有指定片段————includes
        var str = 'woshimeinv'
        var str1 = str.includes('meinv')
        var str2 = str.includes('haha')
        console.log(str1)    //true
        console.log(str2)    //false
    

16. startsWith

  • 语法: 字符串.startsWith(字符串片段)

  • 作用: 判断 字符串开头 是不是指定的 字符串片段

  • 返回值: 一个布尔值

    • true -> 是开头
    • false -> 不是开头
    //16.判断字符串开头是否拥有指定片段————startsWith
        var str = 'woshimeinv'
        var str1 = str.startsWith('wo')
        var str2 = str.startsWith('shi')
        console.log(str1)    //true
        console.log(str2)    //false  
    

17. endsWith

  • 语法: 字符串.endsWith(字符串片段)

  • 作用: 判断 字符串结尾 是不是指定的 字符串片段

  • 返回值: 一个布尔值

    • true -> 是结尾
    • false -> 不是结尾
     //17.判断字符串结尾是否拥有指定片段————endsWith
            var str = 'woshimeinv'
            var str1 = str.endsWith('nv')
            var str2 = str.endsWith('shi')
            console.log(str1)    //true
            console.log(str2)    //false  
    

18. replace

  • 语法: 字符串.replace('要被替换的字符', '替换的字 符')

  • 作用: 找到当前字符串中第一个参数对应的值, 然后将其替换为第二个参数

  • 返回值: 替换完成的字符串

     //18.找到当前字符串中第一个参数对应的值,将其替换成第二个参数————replace('A','B')
            var str = 'woshimeinv'
            var str1 = str.replace('shi','bushi')
            var str2 = str.replace('haha','@#$%')
            console.log(str1)    //wobushimeinv
            console.log(str2)    //woshimeinv