1.概述
1.1定义
- 字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。
- 单引号字符串内部可以使用双引号;双引号字符串内部可以使用单引号
- 若要在单引号内部使用单引号,必须在单引号前加反斜杠转义
- 由于HTML语言的属性值使用双引号,所以很多项目约定Javascript语言的字符串只使用单引号
- 连接运算符(+)可以连接多个单行字符串。
1.2转义
反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符,所有又称为转义符。
\0:null(\u0000)\b:后退键(\u0008)\f:换页符(\u000C)\n:换行符(\u000A)\r:回车键(\u000D)\t:制表符(\u0009)\v:垂直制表符(\u000B)':单引号(\u0027)":双引号(\u0022)\:反斜杠(\u005C) 反斜杠还有三种特殊用法:- \HHH:反斜杠后面紧跟三个八进制数(000-377),代表一个字符
- \xHH:\x后面紧跟两个十六进制数(00-FF),代表一个字符
- \uXXXX:\u后面紧跟四个十六进制数(0000-FFFF),代表一个字符
- 如果在非特殊字符前面使用反斜杠,反斜杠会被省略;反斜杠前加一个反斜杠用来对自身转义
1.3字符串与数组
- 字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)
- 若方括号中的数字超过字符串长度或方括号中不是数字,返回undefined
- 字符串与数组的相似性仅此而已,实际上无法改变字符串
1.4length属性
- length属性返回字符串长度,该属性也无法改变
2.字符集
- JavaScript使用Unicode字符集,JavaScript引擎内部,所有字符都用Unicode表示。
- 程序中也可使用Unicode码点表示字符
- 解析代码时,JavaScript会自动识别字符时字面形式还是Unicode形式,输出给用户时,所有字符转成字面形式
- 每个字符在JavaScript内部都是以16位(2个字节)的UTF-16格式储存。
- JavaScript对UTF-16的支持不完整,只支持两字节的字符,不支持四字节的字符
- 总结:对于码点在U+10000到U+10FFFF之间的字符,JavaScript总是认为它们时两个字符(length属性为2),也就是说,JavaScript返回的字符串长度可能是不正确的
3.Base64转码
- 有时文本里包含不可打印的符号,比如ASCII码0-31的符号,此时可以使用Base64编码,转换成可以打印的字符
- 有时需要以文本格式传递二进制数据,也可以使用Base64编码
- 所谓Base64就是一种编码方法,可以将任意值转成0
9、AZ、a~z、+和/这64个字符组成的可打印字符,目的是为了不出现特殊字符,简化程序处理 - JavaScript原生提供两个Base64相关方法:btoa():任意值转为Base64编码;atob():Base64编码转为原来的值
- 非ASCII码字符转为Base64编码,中间插入一个转码环节,需要使用另外两个方法:encodeURIComponent()、decodeURIComponent()