深入探究 JavaScript 中的 String:常用方法和属性全解析(中)

简介: 深入探究 JavaScript 中的 String:常用方法和属性全解析(中)

三、String的常用方法

length属性:获取字符串的长度

length 属性是 String 对象的一个属性,用于获取字符串的长度。它是通过在字符串前加上方括号 [] 来访问的,例如:

let str = "Hello, world!";
console.log(str.length); // 输出 13

在这个例子中,我们使用 length 属性获取了字符串 str 的长度,并将其输出到控制台。

length 属性返回的字符串长度不包括空格和换行符,只包括字符。例如:

let str = "Hello, world!";
console.log(str.length); // 输出 13

在这个例子中,字符串 str 的长度是 13,因为它包含了 12 个字符和 1 个空格。

需要注意的是,length 属性返回的字符串长度是整数,即它总是返回一个整数,即使字符串中包含小数。

charAt()方法:获取字符串中指定位置的字符

charAt() 方法是 String 对象的一个方法,用于获取字符串中指定位置的字符。它是通过在字符串前加上方括号 [] 和一个数字来访问的,例如:

let str = "Hello, world!";
console.log(str.charAt(0)); // 输出 'H'
console.log(str.charAt(7)); // 输出 'w'
console.log(str.charAt(12)); // 输出 '!'

在这个例子中,我们使用 charAt() 方法获取了字符串 str 中指定位置的字符,并将其输出到控制台。

charAt() 方法的参数是一个数字,表示字符串中字符的位置。这个数字从 0 开始,表示第一个字符的位置。例如,charAt(0) 返回字符串中的第一个字符,charAt(1) 返回字符串中的第二个字符,以此类推。

需要注意的是,如果 charAt() 方法的参数超出了字符串的长度,那么它会返回 undefined。例如:

let str = "Hello, world!";
console.log(str.charAt(13)); // 输出 undefined

在这个例子中,我们尝试使用 charAt() 方法获取字符串 str 中位置为 13 的字符,但是由于字符串的长度只有 13,所以我们得到了 undefined

concat()方法:连接两个或多个字符串

concat() 方法是 String 对象的一个方法,用于连接两个或多个字符串。它是通过在字符串前加上方括号 [] 和一个或多个字符串来访问的,例如:

let str1 = "Hello";
let str2 = "world!";
let str3 = str1.concat(str2);
console.log(str3); // 输出 "Helloworld!"

在这个例子中,我们使用 concat() 方法将两个字符串 str1str2 连接在一起,并将其输出到控制台。

concat() 方法的参数可以是一个或多个字符串,它将这些字符串连接在一起,形成一个新的字符串。例如:

let str1 = "Hello";
let str2 = "world";
let str3 = str1.concat(" ", str2);
console.log(str3); // 输出 "Hello world"

在这个例子中,我们使用 concat() 方法将两个字符串 str1str2 以及一个空格连接在一起,并将其输出到控制台。

需要注意的是,concat() 方法返回一个新的字符串,而不是在原字符串上进行修改。例如:

let str = "Hello";
let str2 = "world";
str = str.concat(str2);
console.log(str); // 输出 "world"
console.log(str2); // 输出 "world"

在这个例子中,我们使用 concat() 方法将两个字符串 strstr2 连接在一起,并将结果赋给原字符串 str。但是,输出结果是 str2,而不是 str,因为 concat() 方法返回的是一个新的字符串。

indexOf()lastIndexOf()方法:查找字符串中字符或子字符串的位置

indexOf()lastIndexOf() 方法是 String 对象的两个方法,用于查找字符串中指定字符或子字符串的位置。它们在字符串中查找指定的字符或子字符串,并返回该字符或子字符串在字符串中首次出现的位置的索引,或者最后一次出现的位置的索引,取决于调用哪个方法。

以下是这两个方法的语法:

str.indexOf(searchElement[, fromIndex])
str.lastIndexOf(searchElement[, fromIndex])

其中,searchElement 是要查找的字符或子字符串,fromIndex 是可选参数,表示从哪个位置开始查找。

下面是这两个方法的详细说明:

  1. indexOf()方法:
  • indexOf() 方法用于查找字符串中指定字符或子字符串首次出现的位置的索引。
  • 如果未找到该字符或子字符串,则返回 -1。
  • 如果指定 fromIndex 参数,则从该索引开始查找。如果该索引大于或等于字符串的长度,则返回 -1。
  1. lastIndexOf()方法:
  • lastIndexOf() 方法用于查找字符串中指定字符或子字符串最后一次出现的位置的索引。
  • 如果未找到该字符或子字符串,则返回 -1。
  • 如果指定 fromIndex 参数,则从该索引开始查找。如果该索引大于或等于字符串的长度,则返回 -1。

下面是一些示例:

let str = "Hello, world!";
// 查找子字符串 "world"
let index = str.indexOf("world");
console.log(index); // 输出 7
let index2 = str.indexOf("world", 6);
console.log(index2); // 输出 7
let index3 = str.indexOf("world", 8);
console.log(index3); // 输出 -1
// 查找字符 "w"
let index = str.indexOf("w");
console.log(index); // 输出 1
let index2 = str.indexOf("w", 2);
console.log(index2); // 输出 1
let index3 = str.indexOf("w", 3);
console.log(index3); // 输出 -1

在这个例子中,我们使用 indexOf() 方法查找字符串 str 中子字符串 “world” 的首次出现位置,并将其输出到控制台。我们还尝试使用 indexOf() 方法从索引 6 开始查找子字符串 “world”,并将其输出到控制台。我们还尝试使用 indexOf() 方法从索引 8 开始查找子字符串 “world”,但是未找到,所以输出 -1。我们还使用 indexOf() 方法查找字符串 str 中字符 “w” 的首次出现位置,并将其输出到控制台。我们还尝试使用 indexOf() 方法从索引 2 开始查找字符 “w”,并将其输出到控制台。我们还尝试使用 indexOf() 方法从索引 3 开始查找字符 “w”,但是未找到,所以输出 -1。

substring()方法:提取字符串的子字符串

substring() 方法是 String 对象的一个方法,用于提取字符串的子字符串。它是通过在字符串前加上方括号 [] 和两个数字来访问的,例如:

let str = "Hello, world!";
let subStr = str.substring(0, 5);
console.log(subStr); // 输出 "Hello"

在这个例子中,我们使用 substring() 方法从字符串 str 中提取从索引 0 开始到索引 5(不包括索引 5)之间的子字符串,并将其输出到控制台。

substring() 方法的第一个参数是子字符串的起始索引,第二个参数是子字符串的结束索引。这两个索引都是可选的,如果省略,则默认为字符串的起始和结束索引。例如:

let str = "Hello, world!";
// 从索引 0 开始到字符串的结束索引
let subStr1 = str.substring(0);
console.log(subStr1); // 输出 "Hello, world!"
// 从字符串的起始索引到索引 5(不包括索引 5)
let subStr2 = str.substring(7);
console.log(subStr2); // 输出 "world!"

在这个例子中,我们使用 substring() 方法从字符串 str 中提取从索引 0 开始到字符串结束的子字符串,并将其输出到控制台。我们还使用 substring() 方法从索引 7 开始到索引 5(不包括索引 5)之间的子字符串,并将其输出到控制台。

需要注意的是,substring() 方法返回的是一个子字符串的引用,而不是一个新字符串。例如:

let str = "Hello, world!";
let subStr = str.substring(0, 5);
str = str.substring(0, 5);
console.log(str); // 输出 "Hello"
console.log(subStr); // 输出 "Hello"

在这个例子中,我们使用 substring() 方法从字符串 str 中提取从索引 0 开始到索引 5(不包括索引 5)之间的子字符串,并将其赋给变量 subStr。然后,我们将变量 str 的起始索引和结束索引都设置为 0 和 5,这意味着我们实际上是在修改 str 变量本身,而不是创建一个新的子字符串。所以,输出结果是相同的。

toLowerCase()toUpperCase()方法:将字符串转换为小写或大写

toLowerCase()toUpperCase() 方法是 String 对象的两个方法,用于将字符串转换为小写或大写。

以下是这两个方法的语法:

str.toLowerCase()
str.toUpperCase()

其中,str 是需要转换的字符串。

下面是这两个方法的详细说明:

  1. toLowerCase()方法:
  • toLowerCase() 方法将字符串中的所有字符转换为小写形式。
  • 如果字符串已经是最小写形式,则不会进行任何更改。
  1. toUpperCase()方法:
  • toUpperCase() 方法将字符串中的所有字符转换为大写形式。
  • 如果字符串已经是最大写形式,则不会进行任何更改。

下面是一些示例:

let str = "Hello, World!";
let lowerStr = str.toLowerCase();
console.log(lowerStr); // 输出 "hello, world!"
let upperStr = str.toUpperCase();
console.log(upperStr); // 输出 "HELLO, WORLD!"

在这个例子中,我们使用 toLowerCase() 方法将字符串 str 转换为小写形式,并将其输出到控制台。我们还使用 toUpperCase() 方法将字符串 str 转换为大写形式,并将其输出到控制台。

需要注意的是,toLowerCase()toUpperCase() 方法返回的是一个新字符串,而不是在原字符串上进行修改。例如:

let str = "Hello, World!";
let lowerStr = str.toLowerCase();
str = lowerStr;
console.log(str); // 输出 "hello, world!"
console.log(lowerStr); // 输出 "hello, world!"

在这个例子中,我们使用 toLowerCase() 方法将字符串 str 转换为小写形式,并将其赋给变量 lowerStr。然后,我们将变量 str 设置为 lowerStr,这意味着我们实际上是在修改 str 变量本身,而不是创建一个新的字符串。所以,输出结果是相同的。

trim()方法:去除字符串两侧的空格

trim() 方法是 String 对象的一个方法,用于去除字符串两侧的空格。它是通过在字符串前加上方括号 [] 来访问的,例如:

let str = "  Hello, World!  ";
let trimStr = str.trim();
console.log(trimStr); // 输出 "Hello, World!"

在这个例子中,我们使用 trim() 方法去除字符串 str 两侧的空格,并将其输出到控制台。

trim() 方法的语法很简单,只有一个参数,即需要去除空格的字符串。它返回一个新的字符串,其中两侧的空格已被删除。

需要注意的是,trim() 方法不会删除字符串中间的空格,只会删除字符串两侧的空格。例如:

let str = "  Hello, World!  ";
let trimStr = str.trim();
console.log(trimStr); // 输出 "Hello, World!"
console.log(str); // 输出 "  Hello, World!  "

在这个例子中,我们使用 trim() 方法去除字符串 str 两侧的空格,并将其输出到控制台。然后,我们将原始字符串 str 输出到控制台,可以看到它仍然是原样。

replace()方法:替换字符串中的特定子字符串

replace() 方法是 String 对象的一个方法,用于替换字符串中的特定子字符串。它是通过在字符串前加上方括号 [] 和两个参数来访问的,例如:

let str = "Hello, World!";
let newStr = str.replace("World", "Universe");
console.log(newStr); // 输出 "Hello, Universe!"

在这个例子中,我们使用 replace() 方法将字符串 str 中的 “World” 子字符串替换为 “Universe”,并将其输出到控制台。

replace() 方法的第一个参数是要被替换的子字符串,第二个参数是要替换为的新子字符串。这两个参数都是可选的,如果省略,则默认为空字符串。例如:

let str = "Hello, World!";
let newStr = str.replace("World", "Universe");
console.log(newStr); // 输出 "Hello, Universe!"
let newStr2 = str.replace("World", "Universe", 1);
console.log(newStr2); // 输出 "Hello, Universe!"

在这个例子中,我们使用 replace() 方法将字符串 str 中的 “World” 子字符串替换为 “Universe”,并将其输出到控制台。我们还使用 replace() 方法将字符串 str 中的 “World” 子字符串替换为 “Universe”,并限制替换次数为 1,因此只替换了第一次出现的 “World”。

需要注意的是,replace() 方法返回一个新的字符串,而不是在原字符串上进行修改。例如:

let str = "Hello, World!";
let newStr = str.replace("World", "Universe");
str = newStr;
console.log(str); // 输出 "Hello, Universe!"
console.log(newStr); // 输出 "Hello, Universe!"

在这个例子中,我们使用 replace() 方法将字符串 str 中的 “World” 子字符串替换为 “Universe”,并将其赋给变量 newStr。然后,我们将变量 str 设置为 newStr,这意味着我们实际上是在修改 str 变量本身,而不是创建一个新的字符串。所以,输出结果是相同的。

相关文章
|
9月前
|
监控 负载均衡 JavaScript
有哪些有效的方法可以优化Node.js应用的性能?
有哪些有效的方法可以优化Node.js应用的性能?
455 69
|
8月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法详解
本指南详细介绍在Linux系统中安装和管理Node.js的步骤。首先检查现有环境,包括查看当前版本和清除旧版本;接着通过NodeSource仓库安装最新版Node.js并验证安装结果。推荐使用nvm(Node Version Manager)进行多版本管理,便于切换和设置默认版本。同时,提供常见问题解决方法,如权限错误处理和全局模块迁移方案,以及版本回滚操作,确保用户能够灵活应对不同需求。
775 0
|
8月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
909 80
|
9月前
|
SQL 安全 数据格式
PEP 750 t-string 深度解析:与 f-string 的差异与进化
Python 3.14 即将引入的 t-string(模板字符串)是字符串处理的重大革新。作为 f-string 的继任者,t-string 通过延迟渲染机制重新定义了字符串模板处理方式。本文从核心机制(即时求值 vs 延迟渲染)、技术特性(语法到语义进化)、应用场景(安全敏感场景、复杂模板系统等)及性能兼容性等方面深入解析,展示其在安全框架、代码生成等领域的广阔前景。开发者可根据需求选择 f-string 或 t-string,实现更高效、可控的字符串处理。
337 13
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
876 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
10月前
|
JavaScript 前端开发 Java
js 垃圾回收机制的方法
JS回收机制方法讲解
|
11月前
|
JSON 监控 网络协议
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
1188 9
|
11月前
|
安全 IDE Java
重学Java基础篇—Java Object类常用方法深度解析
Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
347 1
|
11月前
|
JavaScript 前端开发 Java
深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
Array.find() 是 JavaScript 数组方法中一个非常实用和强大的工具。它不仅提供了简洁的查找操作,还具有性能上的独特优势:返回的引用能够直接影响原数组的数据内容,使得数据更新更加高效。通过各种场景的展示,我们可以看到 Array.find() 在更新、条件查找和嵌套结构查找等场景中的广泛应用。 在实际开发中,掌握 Array.find() 的特性和使用技巧,可以让代码更加简洁高效,特别是在需要直接修改原数据内容的情形。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一

推荐镜像

更多
  • DNS