String类型

string类型

String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(‘)表示,因此下面两种字符串的写法都是有效的:

var firstName = "Nicholas";
var lastName = 'Zakas';

1.字符字面量

string数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。

字面量含义
\n换行
\t制表
\b退格
\r回车
\f进纸
\斜杠
单引号(’),在用单引号表示的字符串中使用。例如:‘He said,‘hey.’ ’
"双引号(”),在用双引号表示的字符串中使用。例如:“He said,“hey.” "
\xnn以十六进制代码nn表示的一个字符(其中n为0-F)。例如,\x41表示”A“
\unnnn以十六进制代码nnnn表示的一个Unicode字符(其中n为0-F)。例如,\u03a3表示希腊字符Σ

这些字符字面量可以出现在字符串中的任意位置,而且也将被作为一个字符来解析,如下的例子:

var text = "This is the letter sigma: \u03a3.";
//这个例子中的变量text有28个字符,其中6个字符长的转义序列表示1个字符

任何字符串的长度都可以通过访问其length属性取得,例如:

alert(text.length);//输出28
//这个属性返回的字符数包括16位字符的数目。如果字符串中包含双字节字符,那么length属性可能不会精确地返回字符串中的字符数目

2.字符串的特点

字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要毁原来的字符串,然后再用另一个包含新值的字符串填充该变量,例如:

var lang = "Java";
lang = lang + "Script";

上面例子中的变量lang开始时包含字符串”Java“。而第二行把lang的值重新定义为”Java"与“Script”的组合,即“JavaScript”,实现这个操作的过程如下:首先创建一个能容纳10个字符的新字符串,然后在这个字符串中填充“Java”和“Script”,最后一步是销毁原来的字符串“Java”和“Script”,因为这两个字符串已经没用了。这个过程是在后台发生的,而这也是在某些旧版本的浏览器中拼接字符串时速度很慢的原因所在。但这些浏览器后来的版本已经解决了这个低效率问题

3.转换为字符串

把一个值转换为一个字符串有两种方式,第一种是使用几乎每个值都有的toString()方法,这个方法唯一要做的就是返回相应值的字符串表现,如下面的例子:

var age = 11;
var ageAsString = age.toString();    //字符串“11”
var found = true;
var foundAsString = found.toString(); //字符串“true”

数值、布尔值、对象、和字符串值都有toString()方法,但null和undefined值没有这个方法。

多数情况下,调用toString()方法不必传递参数。但是,在调用数值的toString()方法时,可以传递一个参数;输出数值的基数。默认情况下,toString()方法以十进制格式返回数值的字符串表示。而通过传递基数,toString()可以输出以二进制、八进制、十六进制,乃至其他任意有效进制格式表示的字符串值,如下面的例子:

var num = 10;
alert(num.toString());    //"10"
alert(num.toString(2));   //"1010"
alert(num.toString(8));   //"12"
alert(num.toString(10));  //"10"
alert(num.toString(16));  //"a"

通过这个例子可以看出,通过指定基数,toString()方法会改变输出的值。而数值10根据基数的不同,可以在输出时被转换为不同的数值格式。注意,默认地(没有参数的)输出值与指定基数10时的输出值相同。

在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数 String(),这个函数能够将任何类型的值转换为字符串。String()函数遵循下列转换规则:

  • 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果;
  • 如果值是null,则返回“null”;
  • 如果值是undefined,则返回“undefined”
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;

alert(String(value1));    //"10"
alert(String(value2));    //"true"
alert(String(value3));    //"null"
alert(String(value4));    //"undefined"

这里先后转换了4个值:数值、布尔值、null和undefined。数值和布尔值的转换结果与调用toString()方法得到的结果相同。因为null和undefined没有toString()方法,所以String()函数就返回了这两个值的字面量。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值