JavaScript字符串String对象之类型简介、使用toString方法和String函数进行字符串类型转换

 2015年07月15日    39     声明


String类型是JavaScript引用类型中的基本数据类型之一。创建String类型可以使用字面量或构造函数,String类型用于表示0或多个16位Unicode字符组成的字符序列,即:字符串。在JavaScript中字符串可以由双引号(")或单引号表示(')。

  1. 创建字符串及字符串属性特点
  2. 特殊的字面量
  3. 转换为字符串类型


1. 创建字符串及字符串属性特点

创建字符串可以使用双引号(")或单引号(')或构造函数,以下三种都可以创建一个字符串对象:

var name = 'itbilu.com';
var fullName = "www.itiblu.com";
var master = new String("liuht");

String对象中有一个length属性,该属性会返回该符串中的字符数。

var fullName = "www.itiblu.com";
console.log(fullName.length);    //14

JavaScript中字符串是不可变的,字符串一旦创建就不能改变。要改变一个变量保存的字符串,首先会销毁原来字符串,然后再创建一个新的字符串。

var site = "itbilu";
site = site + ".com";

在以上操作中,其过程是:首先创建一个长度为6的字符串对象,然后再销毁原来的字符串对象,再重新创建一个长充为10的字符串对象。

不仅对于以上操作,String对象的内置方法,如:toUpperCasetoLowerCase等操作都不是修改原对象,而是返回新的对象。


2. 特殊的字面量

String对象中,有一些特殊的字符字面量,叫做转义序列或转义字符,用于表示一此非打印字符或其它。JavaScript中的转义字符

字符           含义
\n             换行符
\t             制表符
\b             空格
\r             回车
\f             进纸符
\\             斜杠
\'             单引号,'\''
\"             双引号,"\""
\xnn           以十六进制码nn示一个字符,如:\x41表示A
\unnnn         以十六进制码nnnn示一个Unicode字符,如:\\u0065表示e


3. 转换为字符串类型

将一个值类型转换为String类型有两种方式:使用toString方法、使用String()函数。

  • toString方法在JavaScript的大多数对象中都存在,toString方法会返回相应值的字符串表现形式。
    • 数值类型、布尔类型、字符串等类型有toString方法,null和undefined没有该方法
    • toString方法可以不传递参数。对于数值类型可以传递一个参数:2、8、10、16,用以表示输出进制。
  • String()函数能够将任何类型的值转为字符串,String()函数转换规则如下:
    • 如果值有toString方法则调用该方法
    • 如果null,则返回"null"
    • 如果undefined,则返回"undefined"

使用toString方法进行类型转换:

console.log(('itbilu').toString());	//itbilu
console.log((true).toString());			//true
console.log((null).toString());			//TypeError……
console.log((undefined).toString());	        //TypeError……
var num = 10;
console.log(num.toString());	//10
console.log(num.toString(2));	//1010
console.log(num.toString(8));	//12
console.log(num.toString(16));	//a

使用String()函数进行类型转换,在String()函数调用toString方法时只能使用其默认输出值(即:无参数值):

console.log(String('itbilu'));	//itbilu
console.log(String(true));		//true
console.log(String(null));		//null
console.log(String(undefined));		//undefined
var num = 10;
console.log(String(num));		//10