JavaScript字符串对象基本知识

1. 什么是字符串对象?

在JavaScript中,字符串(String)是一种常见的数据类型。字符串对象则是一种特殊的JavaScript对象,可以对字符串进行各种操作。

JavaScript字符串对象的方法有很多种,比如字符串的拼接、替换、截取等等。下面将逐一介绍字符串对象的一些基本知识和常用操作。

2. 字符串的创建

2.1 使用字符串字面量创建字符串

字符串字面量是由一对单引号(')或双引号(")括起来的一段文字,可以用于直接创建JavaScript字符串对象。例如:

let str1 = 'Hello, world!';

let str2 = "Hello, JavaScript!";

注意,在使用双引号创建字符串时,如果字符串中也包含双引号,则需要使用转义符(\)来转义,例如:

let str3 = "I'm a string with \"double quotes\".";

2.2 使用字符串构造函数创建字符串

字符串对象还可以使用构造函数来创建:

let str1 = new String("Hello, world!");

let str2 = new String("Hello, JavaScript!");

但是不推荐使用字符串构造函数来创建字符串,因为它很容易引起混淆,而且速度较慢。

3. 字符串的常用操作

3.1 字符串的拼接

字符串拼接是指将多个字符串连接成一个字符串。在JavaScript中,可以使用加号(+)来进行字符串拼接。

let str1 = "Hello, ";

let str2 = "world!";

let str3 = str1 + str2;

console.log(str3); // 输出:Hello, world!

还可以使用模板字符串(template string)来进行字符串拼接。模板字符串用一对反引号(`)括起来,其中的变量则使用${}包裹。

let name = "Tom";

let age = 18;

let str = `My name is ${name}, and I'm ${age} years old.`;

console.log(str); // 输出:My name is Tom, and I'm 18 years old.

3.2 字符串的替换

字符串的替换是指将字符串中某个字符或一段字符替换成另一个字符或一段字符。在JavaScript中,可以使用replace()方法来进行字符串替换。

let str = "hello, world!";

let newStr = str.replace('world', 'JavaScript');

console.log(newStr); // 输出:hello, JavaScript!

replace()方法的第一个参数是要替换的字符或正则表达式,第二个参数是用来替换的字符或函数。

3.3 字符串的截取

字符串的截取是指从字符串中提取出一个子串。在JavaScript中,可以使用slice()、substring()和substr()方法来进行字符串截取。

3.3.1 slice()方法

slice()方法接受两个参数,第一个参数是起始位置,第二个参数是结束位置(不包括结束位置的字符)。如果不传第二个参数,则直到字符串的结尾。

let str = "hello, world!";

let newStr = str.slice(0, 5);

console.log(newStr); // 输出:hello

3.3.2 substring()方法

substring()方法也接受两个参数,但是第二个参数是结束位置(不包括结束位置的字符)或起始位置(如果第二个参数比第一个参数小的时候),如果不传第二个参数,则直到字符串的结尾。

let str = "hello, world!";

let newStr = str.substring(0, 5);

console.log(newStr); // 输出:hello

3.3.3 substr()方法

substr()方法接受两个参数,第一个参数是起始位置,第二个参数是要截取的长度。如果第二个参数不传,则直到字符串的结尾。

let str = "hello, world!";

let newStr = str.substr(0, 5);

console.log(newStr); // 输出:hello

3.4 字符串的转换

字符串的转换是指将其他数据类型转换成字符串或将字符串转换成其他数据类型。JavaScript中提供了toString()和parseInt()、parseFloat()等方法来进行字符串的转换。

3.4.1 toString()方法

toString()方法可以将一个数值类型的变量转换成字符串类型。

let num = 123;

let str = num.toString();

console.log(str); // 输出:'123'

3.4.2 parseInt()和parseFloat()方法

parseInt()方法可以将一个字符串转换成整数,而parseFloat()方法则可以将一个字符串转换成浮点数。

let str = '123';

let num = parseInt(str);

console.log(num); // 输出:123

str = '3.14159';

num = parseFloat(str);

console.log(num); // 输出:3.14159

4. 字符串的常用属性

4.1 length属性

字符串的length属性可以返回字符串中字符的数量。

let str = "hello, world!";

console.log(str.length); // 输出:13

注意:length属性不是方法,而是属性,所以不需要加上括号。

4.2 indexOf()和lastIndexOf()方法

indexOf()和lastIndexOf()方法可以返回某个字符(或字符串)在字符串中的位置。

4.2.1 indexOf()方法

indexOf()方法从前往后查找字符串中是否包含某个字符(或字符串),如果找到了,则返回该字符(或字符串)在字符串中第一次出现的位置,否则返回-1。

let str = "hello, world!";

console.log(str.indexOf("l")); // 输出:2

console.log(str.indexOf("world")); // 输出:7

console.log(str.indexOf("z")); // 输出:-1

4.2.2 lastIndexOf()方法

lastIndexOf()方法从后往前查找字符串中是否包含某个字符(或字符串),如果找到了,则返回该字符(或字符串)在字符串中最后一次出现的位置,否则返回-1。

let str = "hello, world!";

console.log(str.lastIndexOf("l")); // 输出:10

console.log(str.lastIndexOf("world")); // 输出:7

console.log(str.lastIndexOf("z")); // 输出:-1