字符串
书写方式
与OC不同,JavaScript中的字符串可以用单引号或者双引号表示,并且可以嵌套使用,即单引号字符串的内部,可以使用双引号。双引号字符串的内部,可以使用单引号。但是单引号内部使用单引号的时候需要\转义,双引号内部使用双引号同理。
连接运算符(+)
和swift相似,字符串之间可以用+进行连接。
字符串与数组
字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)。
var s = 'hello';
s[0] // "h"
// 直接对字符串使用方括号运算符
'hello'[1] // "e"
// 如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined。
'abc'[3] // undefined
'abc'[-1] // undefined
'abc'['x'] // undefined
需要注意的是,字符串无法修改(增删改)内部字符
字符集
JavaScript 使用 Unicode 字符集,允许直接在程序中使用 Unicode 码点表示字符,变量名也可以用Unicode 码点表示。输出给用户的时候,所有字符都会转成字面形式。
var s = '\u00A9';
s // "©"
var f\u006F\u006F = 'abc';
foo // "abc"
Base64 转码
所谓 Base64 就是一种编码方法,可以将任意值转成 0~9、A~Z、a-z、+和/这64个字符组成的可打印字符。使用它的主要目的,不是为了加密,而是为了不出现特殊字符,简化程序的处理。 简单介绍一下Base64的2个使用场景:
- 文本里面包含一些不可打印的符号,比如 ASCII 码0到31的符号都无法打印出来,这时可以使用 Base64 编码,将它们转成可以打印的字符。
- 需要以文本格式传递二进制数据,可以使用 Base64 编码。
JavaScript 原生提供两个 Base64 相关的方法。
- btoa():任意值转为 Base64 编码
- atob():Base64 编码转为原来的值
var string = 'Hello World!';
btoa(string) // "SGVsbG8gV29ybGQh"
atob('SGVsbG8gV29ybGQh') // "Hello World!"
需要注意的是这两个方法直接传入非ASCII码时会报错,所以需要把非ASCII编码的字符先转码
btoa('你好') // 报错
// 转换方法
function b64Encode(str) {
return btoa(encodeURIComponent(str));
}
function b64Decode(str) {
return decodeURIComponent(atob(str));
}
b64Encode('你好') // "JUU0JUJEJUEwJUU1JUE1JUJE"
b64Decode('JUU0JUJEJUEwJUU1JUE1JUJE') // "你好"