转义序列,String类型的特殊字符字面量(Character Literals)。
字面量 | 含义 |
\n | 换行 |
\t | 制表 |
\b | 空格 |
\r | 回车 |
\f | 进纸 |
\‘ | 单引号 |
\" | 双引号 |
\xnn | 以十六进制代码nn表示的一个字符(其中n为0~F),例,\x41表示"A" |
\unnnn | 以十六进制代码nnnn表示的一个Unicode字符(其中n为0~F),例,\u03a3代表一个希腊字符Σ |
注意:1个转义序列的字符串表示1个字符。字符串的length属性返回了这个字符串中16位字符的数目。如果字符串中包含双字节字符,那么length属性可能不会精确地返回字符串中的字符数目。
var a = "\x41";
console.log(a.length); // 1
var b = "\t";
console.log(b.length); //1
?
ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。
那么如何改变变量保存的字符串呢?
首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
例:
var lang = "Java";
lang = lang + "Script";
?
首先,创建一个能容纳10个字符的新字符串;
然后,在这个字符串中填充"Java"和"Script";
最后,销毁原来的字符串"Java"和字符串"Script"。
上面这个过程是在后台发生的,而这也是在某些旧版本的浏览器(例如版本低于1.0的Firefox、IE6等)中拼接字符串时速度很慢的原因所在。
两个方法:toString() 和 String()。
Number类型、Boolean类型、Object类型和String类型的值,都有一个toString()方法。
Null类型和Undefined类型的值,没有toString()方法。
var numVlaue = 11;
numVlaue.toString(); // "11"
11 .toString(); // "11",注意,是"11" "空格" "点" "toString()"
var booleanValue = true;
booleanValue.toString(); // "true"
true.toString(); // "true"
var objectValue = {
mirror:"avatar"
};
objectValue.toString(); //"[object Object]"
?
转换Number类型的值的时候,toString()可以添加参数,用于转换成二进制、八进制、十六进制等模样的字符串,默认不加是十进制。
var num = 10;
num.toString(); // "10"
num.toString(2); // "1010"
num.toString(8); // "12"
num.toString(10); // "10"
num.toString(16); // "a"
?
Null类型和Undefined类型的值,没有toString()方法。所以转换这两种类型的值时候用String()。
String(null); // "null"
String(undefined); // "undefined"
?
String()方法的转换规则:
原文:http://mirroravatar.iteye.com/blog/2187612