字符串
对于字符串的理解,大家肯定都知道Js中被“”、‘’括起来的内容都是字符串。
var a = "hello world"; var b = "a"; console.log(b);
结果: a
var c = "hello"; var b = 'c'; console.log(c);
结果: hello
看了上面的代码应该能很清楚:在JS中,单双引号的区别。
字符转义:
\0 null(\u0000)
\b 后退键(\u0008)
\f 换页符(\u000C)
\n 换行符(\u000A)
\r 回车键(\u000D)
\t 制表符(\u0009)
\v 垂直制表符(\u000B)
\' 单引号(\u0027)
\" 双引号(\u0022)
\ 反斜杠(\u005C)
d = "\"hello\" world"
""hello" world"
d = '\'您好\''
"'您好'"
字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)。
a = 'hello'; console.log(a[0], a[5]);
结果:2 h undefined
字符串内部的单个字符无法改变和增删,这些操作会默默地失败。
字符串也无法直接使用数组的方法,必须通过call方法间接使用。
a = '12345'; delete a[0]; console.log(a);
结果: 12345
a = '12345'; a.join('');
VM11138:2 Uncaught TypeError: a.join is not a function(…
a = '12345'; Array.prototype.join.call(a, ',');
"1,2,3,4,5"
length属性返回字符串的长度,该属性也是无法改变的。
JavaScript使用Unicode字符集。也就是说,在JavaScript引擎内部,所有字符都用Unicode表示。
JavaScript原生提供两个Base64相关方法。
btoa():字符串或二进制值转为Base64编码
atob():Base64编码转为原来的编码
btoa(1001);
"MTAwMQ=="
atob('MTAwMQ==');
"1001"
function b64Encode(str) {
return btoa(encodeURIComponent(str));
}
function b64Decode(str) {
return decodeURIComponent(atob(str));
}
b64Encode('你好') // "JUU0JUJEJUEwJUU1JUE1JUJE"
b64Decode('JUU0JUJEJUEwJUU1JUE1JUJE') // "你好"
Base64是一种编码方法,可以将任意字符转成可打印字符。使用这种编码方法,主要不是为了加密,而是为了不出现特殊字符,简化程序的处理。