JavaScript数据类型之字符串

字符串

  1. 概述

    1. 使用''""来包裹字符串,由于 HTML 语言的属性值使用双引号,所以很多项目约定 JavaScript 语言的字符串只使用单引号。

    2. 长字符串要分为多行书写,

      1. 可以在每一行的尾部使用反斜杠\,反斜杠的后面必须是换行符,而不能有其他字符。

        let a = 'a hhh\
        hh\
        aa';
        
        // a为 "a hhhhhaa"
        
        let a = 'lalala\
        	lalala\
        	hahaha';
        // a为"lalala	lalala	hahaha"
        
      2. 连接运算符(+)可以连接多个单行字符串,将长字符串拆成多行书写。

        a = 'haha' + 
            'lueluelue' + 
            '123'
        
        // "hahalueluelue123"
        
  2. 转义字符:\

    1. \uxxxx转义为Unicode对应码点

    2. 如果在非特殊字符前面使用反斜杠,则反斜杠会被省略。

      a = '\aa' 
      
      // "aa"
      
  3. 字符串与数组

    1. 字符串是不可变的

      a = 'abcd'
      a[0] = 'c'
      
      a // 'abcd'
      
      a = "aaa"
      a // "aaa",此时,只是修改了字符串的引用变量所指向的值
      
    2. 字符串可以被视为字符数组。

    3. 如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined

      a = 'abcd'
      
      a[2] // "c"
      a[5] // undefined
      a['x'] // undefined
      a['0'] // "a"。个人认为此处应该是自动调用了Number()把'0'转换为了0,所以找到了a[0]的值。
      
    4. length属性返回字符串的长度,该属性也是无法改变的。

字符集

  1. JavaScript 使用 Unicode 字符集。
  2. 由于历史遗留原因,对于码点在U+10000U+10FFFF之间的字符,JavaScript 总是认为它们是两个字符(length属性为2)。所以,JavaScript 返回的字符串长度可能是不正确的。

Base64

  1. 文本里面包含一些不可打印的符号,比如 ASCII 码0到31的符号都无法打印出来,这时可以使用 Base64 编码,将它们转成可以打印的字符。另一个场景是,有时需要以文本格式传递二进制数据,那么也可以使用 Base64 编码。

  2. 所谓 Base64 就是一种编码方法,可以将任意值转成 0~9、A~Z、a-z、+/这64个字符组成的可打印字符。使用它的主要目的,不是为了加密,而是为了不出现特殊字符,简化程序的处理。

  3. btoa():任意值转为 Base64 编码

  4. atob():Base64 编码转为原来的值

  5. 对于非 ASCII 码的字符,需要进行转码。

    function b64Encode(str) {
      return btoa(encodeURIComponent(str));
    }
    
    function b64Decode(str) {
      return decodeURIComponent(atob(str));
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值