JavaScript数据类型之字符串类型
字符字面量
String类型包含一些特殊字符字面量(转义字符),用于表示非打印字符或具有其他用途的字符,见下表:
字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 退格 |
\r | 回车 |
\f | 进纸 |
\\\\ | 斜杠 |
' | 单引号 |
" | 双引号 |
\xnn | 以十六进制代码nn表示的一个字符 |
\unnnn | 以十六进制代码nnnn表示的一个Unicode字符 |
这些字符字面量被作为一个字符来解析,如以下例子所示:
var str = "This is the letter sigma: \u03a3.";
这个例子中,变量str有28个字符,其中\u03a3表示一个字符。 任何字符串的长度都可以通过访问其length属性取得,这个属性返回的字符数包括16位字符的数目。如果字符串中包含双字节字符,那么length属性可能不会精确地返回字符串的字符数目。
字符串的特点
字符串是不可变的。 字符串一点创建,他们的值就不能改变。要改变一个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量(正是某些旧版本浏览器拼接字符串时速度很慢的原因)。
转换为字符串
调用toString()方法
数值、布尔值、对象和字符串值都有toString()方法,但null和undefined没有。 一般情况下,该方法不需要传参数,但是调用数值的toString()方法时可以传递一个参数:输出数值的基数。例:
var num = 10;
num.toString(); //'10'
num.toString(2); //'1010'
num.toString(8); //'12'
num.toString(10); //'10'
num.toString(16); //'a'
转型函数String()
如果不确定要转型的值是否为null或者undefined,可以使用该函数。它能够将任何类型的值转换为字符串转换规则如下:
- 如果有toString()方法,则调用此方法(没有参数);
- 如果值是null,返回’null’;
- 如果值是Undefined,返回’undefined’.
注:以上内容摘录或节选自《JavaScript高级程序设计(第3版)》page:32-34