JavaScript(四)字符串类型
一些基础知识
- 单引号字符串的内部可以使用双引号,双引号内部可以使用单引号
- 如果要在单引号内部使用单引号,就要使用\转义符
- 由于HTML属性值使用双引号,所以有些项目规定JavaScript全部使用单引号
- 如果一个字符串过长,在每一行的结尾可以使用反斜杠标记,这样输出的时候和单行的效果一样。(反斜杠的后面必须是换行符,不能是其他字符)
- 连接符可以连接多个字符串,输出的效果也和单行输出一样
转义
\在字符串中有特殊含义,用来表示一些特殊字符,所以又称为转义符,
转义符 | 名称 | Unicode编码 |
---|---|---|
\0 | null | \u0000 |
\b | 后退符 | \u0008 |
\f | 换页符 | \u000C |
\n | 换行符 | \u000A |
\r | 回车符 | \u000D |
\t | 制表符 | \u0009 |
\v | 垂直制表符 | \u000B |
如果在非特殊字符前面使用反斜杠,则反斜杠会被忽略
字符串和数组
- 字符串可以被看成一个字符数组,因此可以使用s[i]来获取i下标下的字符,如果长度超过最大长度或者无法识别,则返回undefined
- 但是无法通过下标来改变字符串中的字符
- length属性返回字符串的长度
- JavaScript默认使用Unicode字符集,内部的所有字符都是使用Unicode字符来表示
- 每个字符在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))//相反,将转化后的值转化为原来的值
本文来自博客园,作者:两小无猜,转载请注明原文链接:https://www.cnblogs.com/charlottepl/p/13743996.html