肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > JavaScript数据类型 - String类型

JavaScript数据类型 - String类型

时间:2019-11-14 19:51:59

相关推荐

String类型

String类型用于表示由0或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号"或单引号'表示,因此以下两种字符串写法都是正确的:

var str1 = 'Alvin';var str2 = "Alvin";

虽然在JavaScript中单引号和双引号都可以用来表示字符串,但是单引号或双引号必须成对出现,不能单双混用。比如:

var name = "Alvin';var name1 = 'Alvin";

上面这两种写法都是错误的。

字符字面量

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

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

var text = "This is the letter sigma: \u03a3";

这个例子中变量text有28个字符,其中6个字符长转义序列表示一个字符。

任何字符串的长度都可以通过访问length属性取得,如下面代码:

console.log(text.length); //28

字符串特点

ECMAScript中字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能再变了,如果要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量,如下代码所示:

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

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

转换为字符串

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

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

数值、布尔值、对象和字符串值(每个字符串也都有一个toString方法,该方法返回字符串的一个副本)都有toString()方法。但null和undefined没有这个方法。

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

var num = 10;console.log(num.toString());//"10"console.log(num.toString(2));//"1010"console.log(num.toString(8));//"12"console.log(num.toString(10));//"10"console.log(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;console.log(String(value1)); //"10"console.log(String(value2)); //"true"console.log(String(value3)); //"null"console.log(String(value4)); //"undefined"

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

如果觉得《JavaScript数据类型 - String类型》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。