javascript基础学习系列十五:String类型

String(字符串)数据类型表示零或多个 16 位 Unicode 字符序列。字符串可以使用双引号(")、 单引号(')或反引号(`)标示,因此下面的代码都是合法的:

    let firstName = "John";
    let lastName = 'Jacob';
    let lastName = `Jingleheimerschmidt`

跟某些语言中使用不同的引号会改变对字符串的解释方式不同,ECMAScript 语法中表示字符串的 引号没有区别。

不过要注意的是,以某种引号作为字符串开头,必须仍然以该种引号作为字符串结尾。 比如,下面的写法会导致语法错误:

let firstName = 'Nicholas"; // 语法错误:开头和结尾的引号必须是同一种 

1. 字符字面量:

在这里插入图片描述
这些字符字面量可以出现在字符串中的任意位置,且可以作为单个字符被解释:

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

即使包含 6 个字符长的转义序列,变量 text 仍然是 28 个字符长。因为转义序列表 示一个字符,所以只算一个字符。
字符串的长度可以通过其 length 属性获取:

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

这个属性返回字符串中 16 位字符的个数。


2. 字符串的特点:

ECMAScript 中的字符串是不可变的(immutable),意思是一旦创建,它们的值就不能变了。要修改 某个变量中的字符串值,必须先销毁原始的字符串,然后将包含新值的另一个字符串保存到该变量,如 下所示:

let lang = "Java";
lang = lang + "Script"; 9

这里,变量 lang 一开始包含字符串"Java"。紧接着,lang 被重新定义为包含"Java"和"Script" 的组合,也就是"JavaScript"。整个过程首先会分配一个足够容纳 10 个字符的空间,然后填充上 “Java"和"Script”。


3. 转换为字符串:

有两种方式把一个值转换为字符串。首先是使用几乎所有值都有的 toString()方法。这个方法唯 一的用途就是返回当前值的字符串等价物。

toString()方法可见于数值、布尔值、对象和字符串值。(没错,字符串值也有 toString()方法, 该方法只是简单地返回自身的一个副本。)null 和 undefined 值没有 toString()方法。

即以什么底数来输出数值的字符串表示。默认情况下,toString()返回数值的十 进制字符串表示。而通过传入参数,可以得到数值的二进制、八进制、十六进制,或者其他任何有效基 数的字符串表示。

let num = 10;
console.log(num.toString());
console.log(num.toString(2));
console.log(num.toString(8));
console.log(num.toString(10));
console.log(num.toString(16));
// "10"
// "1010"
// "12"
// "10"
// "a"

传入底数参数时,toString()输出的字符串值也会随之改变。数值 10 可以输出为 任意数值格式。注意,默认情况下(不传参数)的输出与传入参数 10 得到的结果相同。

如果你不确定一个值是不是 null 或 undefined,可以使用 String()转型函数,它始终会返回表 示相应类型值的字符串。String()函数遵循如下规则。

  • 如果值有 toString()方法,则调用该方法(不传参数)并返回结果。
  • 如果值是 null,返回"null"。
  • 如果值是 undefined,返回"undefined"。

将 4 个值转换为字符串的情况:一个数值、一个布尔值、一个 null 和一个 undefined。 数值和布尔值的转换结果与调用 toString()相同。因为 null 和 undefined 没有 toString()方法, 所以 String()方法就直接返回了这两个值的字面量文本。

猜你喜欢

转载自blog.csdn.net/wanmeijuhao/article/details/135439238