1. 基础使用
Js中的字符串可以使用单引号也可以使用双引号,单引号可以嵌套双引号,双引号也可以嵌套单引号
var str = "hello 'tom'"; //hello 'tom'
var str1 = 'hello "tom"'; //hello "tom"
字符串不可以换行,如果非要使用换行要在行末加上\反斜杠后面跟行换行,这种只是写法上换行实际结果还是一行
var str = "a sample \
string";
2. 转义
- \0 null
- \n 换行符
- \b 后退键
- \t 制表符
- \r 回车符
- \v 垂直制表符
- \f 换页符
- ’ 单引号
- " 双引号
- \ 反斜杠
console.log('1\n2');
// 1
// 2
如果反斜杠后面跟的是非转移字符则直接省略反斜杠
console.log('1\a2'); //1a2
在字符串中显示反斜杠要对反斜本身进行转义
console.log('1\\a2'); //1\a2
除了上述的转移字符,js支持使用unicode编码表示字符
var f\u006F\u006F = 'abc';
foo // "abc"
3. 字符串和数组
字符串可以看作是类型为字符的数组,它具有数组的length属性,还可以使用方括号运算符
var str = 'apple';
console.log(str[0],str.length); //a,5
通过数组的方式只能访问字符串不能进行操作
delete str[1];
str[2] = 'q';
str.length = 10;
console.log(str[1],str[2],str.length); //p,p,5
4. Base64
有时,文本里面包含一些不可打印的符号,比如 ASCII 码0到31的符号都无法打印出来,这时可以使用 Base64 编码,将它们转成可以打印的字符。另一个场景是,有时需要以文本格式传递二进制数据,那么也可以使用 Base64 编码。
Base64是一种编码方式,可以将任意值转成A-Z、a-z、+和\这64个字符组成的可以打印的字符,它的目的不是为了加密而是为了不出现特殊字符,简化程序的处理。类似的还有base32,base16。
Javascript提供了任意字符和Base64相互转换的方法:
- btoa(); 任意字符转base64
- atob(); base64转回原来的值
var str = 'hello base64';
console.log(btoa(str)); //aGVsbG8gYmFzZTY0
console.log(atob('aGVsbG8gYmFzZTY0')); //hello base64
这两个只支持传入ASCII的字符,如果要传入unicode字符,要将base64先转码再使用btoa方法
var hello = '你好';
console.log(btoa(encodeURIComponent(hello))); //JUU0JUJEJUEwJUU1JUE1JUJE
console.log(decodeURIComponent( atob('JUU0JUJEJUEwJUU1JUE1JUJE'))); //你好