JavaScript(四)字符串类型

一些基础知识

  1. 单引号字符串的内部可以使用双引号,双引号内部可以使用单引号
  2. 如果要在单引号内部使用单引号,就要使用\转义符
  3. 由于HTML属性值使用双引号,所以有些项目规定JavaScript全部使用单引号
  4. 如果一个字符串过长,在每一行的结尾可以使用反斜杠标记,这样输出的时候和单行的效果一样。(反斜杠的后面必须是换行符,不能是其他字符)
  5. 连接符可以连接多个字符串,输出的效果也和单行输出一样

转义

\在字符串中有特殊含义,用来表示一些特殊字符,所以又称为转义符,


转义符 名称 Unicode编码
\0 null \u0000
\b 后退符 \u0008
\f 换页符 \u000C
\n 换行符 \u000A
\r 回车符 \u000D
\t 制表符 \u0009
\v 垂直制表符 \u000B

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

字符串和数组

  1. 字符串可以被看成一个字符数组,因此可以使用s[i]来获取i下标下的字符,如果长度超过最大长度或者无法识别,则返回undefined
  2. 但是无法通过下标来改变字符串中的字符
  3. length属性返回字符串的长度
  4. JavaScript默认使用Unicode字符集,内部的所有字符都是使用Unicode字符来表示
  5. 每个字符在JavaScript中都是按照16位的utf-16格式存储的,也就是JavaScript中单位字符的长度为16位,即两个字节

但是JavaScript对utf-16的支持是不完整的,由于历史原因,只支持两个字节的字符,不支持四字节的字符,因为第一版utf-16发表的时候之编写到了UFFFF,因此两个字节就足够了,后来Unicode的自己付越来越多,出现了四个字节的字符,但是JavaScript已经定型,统一将字符长度规定为两个字符,导致现在不能识别四字节的字符

因此,JavaScript在识别四个字节字符的时候会把它认为是两个字符,因此JavaScript返回的字符串长度可能是不对的。

Base64编码

有时候文本里包含一些不能用来打印的符号,例如ASCII码0到31的符号都无法打印。这个时候可以使用Base64编码,将他们转变成可以打印的字符,另一个场景是有时候需要使用文本传递二进制数据,这个时候也会使用Base64转化。

Base64是一种编码格式,可以把任意字符转化成0到9,a到z,A到Z,+,/这64个特殊字符组成的可打印字符,他的主要目的不是为了加密,

JavaScript原生提供了两个Base64函数

  • btoa():任意值转化为Base64编码
  • atob():Base64转化为原来的值

这两个方法只适用于ASCII码的字符,例如汉字就不支持,如果想使用的话可以进行转码

  • encodeURIComponent(str)//将非ASCII码的字符转化为ASCII支持的
  • decodeURIComponent(atob(str))//相反,将转化后的值转化为原来的值
posted @ 2020-09-28 11:49  两小无猜  阅读(210)  评论(0编辑  收藏  举报