JS红宝书学习-第3章 语言基础 --数据类型_String(二)

3.4 String 类型

1.字符串的特点

ES中的字符串是不可变得,意思是一但创建,其值就不能改变了。要修改变量的值,必须先销毁原始的字符串,然后将包含新值的另一个字符串保存到该变量,例:

let lang = "Say";   
lang = lang + " Hello";

这里,首先我们创建了一个变量lang其包含了一串字符"Say",然后lang被重新定义为"Say"和" Hello"的组合,这时lang会被分配9个字符的空间,之后字符会填充进去。最后后台会把之前的两个原始字符串进行销毁。早期浏览器在处理拼接时非常慢~现在的好了很多。

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

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

toString()方法可用于数值,布尔值,对象和字符串值。(字符串值使用会返回自身的副本)null和undefined值没有toString()方法。

使用中toString()一般不用传参数,但是当使用Number转换时,可以传入参数当作底数,来表示进制(二进制,八进制,十进制,十六进制,或其他有效基数)例:

let num = 15;
console.log(num.toString());    // "15" 
console.log(num.toString(2));   // "1111" 
console.log(num.toString(8));   // "17" 
console.log(num.toString(10));  // "15" 
console.log(num.toString(16));  // "f"

根据不同底数会转换不同格式,默认格式为十进制。

因为null和undefined不能使用toString()方法,这时你不确认数据格式,可以使用String()方法,来进行转型。它始终会返回表示相应类型的值的字符串。规则如下。

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

例:

let value_1 = 1;
let value_2 = false;
let value_3 = null;
let value_4;

console.log(value_1);   // "1"
console.log(value_2);   // "false"
console.log(value_3);   // "null"
console.log(value_4);   // "undefined"

除了上面两种,我们是不是还经常直接在变量前追加""来进行类型护转换,例:

let age = "" + 18;  // 有点浪费~

这也是可以的,在加号操作符会详细描述。

加油。

posted @ 2021-08-13 16:46  MrChuanlinAndYaFei  阅读(62)  评论(1)    收藏  举报