• 06-JS字符串


    一、ES5的严格模式

    对代码的语法规范进行约束,严格模式也是语言发展的必经之路

    1. 不可以省略var关键字声明变量

      "use strict" //在代码最前面设置,表示打开严格模式
      a = 10
      console.log(a) // a is not defined
      
      • 1
      • 2
      • 3
    2. 函数的参数不可以同名

      function fn(a,a){
          console.log(a,a)
      }
      fn(1,2)
      
      • 1
      • 2
      • 3
      • 4
    3. this的指向问题

      //this指向 默认是指向全局的window
      function fn(){
          console.log(this) //在严格模式下this指向undefined
      }
      fn()
      
      • 1
      • 2
      • 3
      • 4
      • 5

    二、ES5的字符串特点

    1. 字符串的创建方式

      // 1. 声明式
      var str = ""
      // 2. 构造函数
      var str = new String('')
      
      • 1
      • 2
      • 3
      • 4
    2. 字符串的比较

      ASCII码表转换

      // 第一种情况:字母和数字
      console.log("a">"1")
      // 第二种情况:小写和大写
      console.log("a">"b")
      // 第三种情况:字母和字母
      console.log("z">"a")
      // 第四种情况:数字和数字
      console.log("3">"10") // true 两个字符串进行比较的时候,是逐字符进行比较
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

      通过ASCII码表,我们可以得出一些字符串比较的规律

      1. 字母比数字大
      2. 小写字母比大写字母大(大写65,小写97)
      3. 字母越靠后越大
    3. 中文汉字的比较

      万国码表 - unicode

    4. 字符串的基本操作

      // 1. 字符串也可以通过下标获取字符
      var str = '你好'
      console.log(str[1]);//好
      
      // 2. 字符串是只读数据类型,不能添加新字符,不能修改也不能删除其中的某个字符
      var str = '你好'
      str[0] = '不'
      console.log(str);//你好
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

    三、字符串的方法使用

    1. charAt / charCodeAt / fromCharCode / toLowerCase / toUpperCase
    // 1. charAt(下标) 通过下标获取到相应字符
    var str = "abc123"
    var res = str.charAt(0)
    console.log(res) //a
    
    // 2. charCodeAt(下标) 通过下标获取到相应的字符的ASCII
    var str = '12345'
    var res = str.charCodeAt(1) // 2
    console.log(res) // 50 (2的ASCII)
    
    // 3. String.fromCharCode(ASCII) 通过ASCII获取字符
    console.log(fromcharCode(97)) // a
    
    // 4. toLowerCase() 转换为小写
    console.log("HELLO",toLowerCase()) //hello
    console.log("hello",toUpperCase()) //HELLO
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    2. indexOf / lastIndexOf / concat
    // 1. indexOf() 字符串出现的第一次位置
    // 2. lastIndexOf() 字符串出现的最后一次位置
    var str = '123321'
    var res1 = str.indexOf('1')
    var res2 = str.lastIndexOf('1')
    console.log(res1,res2) // 0  5
    
    //3. concat字符串的拼接:字符串.concat(被拼接的字符串)
    var str = 'aa'
    var res = str.concat('bb')
    console.log(res) //aabb
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    3. split / slice

    ​ split字符串的分割

    1. 语法:str.split(“分割符号”)

    2. 用法:将字符串分割为很多段,返回一个新的数组

    3. 注意:

      1. 小括号内如果什么都没有的时候,完整输出为数组

        1. 小括号内如果有引号
        • 没有分割符号的时候,全部分割组成一个新的数组
        • 有分割符号但这个分割符号不在字符串中,字符串就会完整输出为数组
      2. 还可以在分割符号后面使用一个数字类型,表示保留几个数据

    var str = "hello world"
    var res = str.split(" ")
    console.log(res) //['hello','world']
    var res1 = str.split()
    console.log(res1) //['hello world']
    var res2 = str.split("")
    consoloe.log(res2) //['h','e','l','l',...]
    var res3 = str.split("?")
    console.log(res3) //['hello world']
    var res4 = str.split("",3)
    console.log(res4) //['h','e','l']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    ​ slice 字符串截取方法

    1. 语法:字符串.slice(开始下标,结束下标)

    2. 特点:

      1. 包含开始下标,不包含结束下标 => [ )
      2. 第二个参数可以不写,表示选中从开始下标后面的所有字符
      3. 两个参数可以为负数:第一个参数要小于第二个参数,如果大于会返回空值
      var str = 'aabb'
      var res = str.slice(0,2)
      console.log(res)//aa
      
      • 1
      • 2
      • 3
    4. substr / substring

    ​ substr 截取字符串

    1. 语法:字符串.substr(开始的下标,截取的个数)
    
    2. 包含开始下标,截取字符的个数
    3. 第二个参数可以省略,表示从开始下标后面所有都会被选中
    
    • 1
    • 2
    • 3
    • 4
    var str = 'aabb'
    var res = str.substr(2)
    console.log(res)//bb
    
    • 1
    • 2
    • 3

    ​ substring 截取字符串

    1. 语法:substring(开始下标,结束下标)

    2. 特点

      1. 包含开始下标,不包含开始下标 => [ )
      2. 第二个参数可以不写,表示从开始下标到后面所有的都被选中截取下来
      3. 当开始下标等于结束下标的时候会输出空
      4. 当开始下标大于结束下标的时候,两个参数会进行互换位置再截取
      5. 当下标为负数的时候,默认会转换为0,再进行截取
      var str = 'abab'
      var res = str.substring(-2,2)
      console.log(res)//ab
      
      • 1
      • 2
      • 3
    5. trimStart / trimEnd / trim

    截取字符串 开始 / 结束 / 头尾空格

    var str = "   username   "
    console.log(str.trimStart())
    console.log(str.trimEnd())
    console.log(str.trim())
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    在kubernetes+istio中通过FQDN请求Nacos服务
    在安卓项目中使用 FFmpeg 实现 GIF 拼接(可扩展为实现视频会议多人同屏效果)
    Unity3D XML与Properties配置文件读取详解
    我注册了某音帐号之后。。。(内含推荐算法)
    String_JavaScript
    Apache Seata如何解决TCC 模式的幂等、悬挂和空回滚问题
    搭建Redis -Sentinel架构
    【单链表经典习题讲解】
    Java集合List去重的几种方式
    FineBI 新增字段后 更新缓慢问题
  • 原文地址:https://blog.csdn.net/qq_41570386/article/details/127699630