js -- 字符串相关方法总结

简介: js -- 字符串相关方法总结

在js中,string 字符串对象被进行了基本类型的包装就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法

例如:

// 下面代码有什么问题?它是怎么返回 4 的?
let str = 'asdf';
console.log(str.length); // 4

按道理基本数据类型是没有属性和方法的,而对象才有属性和方法,但上面代码却可以执行,

这是因为 js 会把基本数据类型包装为复杂数据类型,其执行过程如下:

// 1. 生成临时变量,把简单类型包装为复杂数据类型
let moment = new String('asdf');
console.log(moment);
// 2. 赋值给我们声明的字符变量
str = moment;
// 3. 销毁临时变量
moment = null;

由此可以得出字符串的每次操作都会重新开辟一块新空间,严格来说字符串是不可变的。

所以本文总结了字符串相关的方法

根据字符串返回位置

方法名 说明

indexOf(‘要查找的字符,开始的位置)

返回指定内容在原字符串中的位置,如果找不到就返回-1,开始的位置是index索引号。

lastIndexOf()

从后往前找,只找第一个匹配的
let str = "abcdefgabc";
console.log(str.indexOf("d")); // 3
// 指定从索引号为 4 的地方开始查找字符"d"
console.log(str.indexOf("d", 4)); // -1
// 从后往前找第一个"a"
console.log(str.lastIndexOf("a")); // 7

根据位置返回字符

方法名 说明 使用

charAt(index)

返回指定位置的字符(index 指字符串索引) str.charAt(0)
charCodeAt(index) 获取指定位置字符的ASCLL码 str.charCodeAt(0)
str[index] 获取指定位置的字符 HTML、IE 8+ 支持
// 1. charAt(index) 根据位置返回字符
let str = 'asdf';
console.log(str.charAt(3)); // f
// 遍历所有的字符
for (let i = 0; i < str.length; i++) {
console.log(str.charAt(i)); // a s d f
}
// 2. charCodeAt(index)
// 返回相应索引号的字符 ASCII 值,目的: 判断用户按下了那个键
console.log(str.charCodeAt(0)); // 97
// 3. str[index] H5 新增的
console.log(str[0]); // a

字符串操作方法

方法名 说明
substr(start,length) 从start开始,取length个字符,不会改变原字符串
slice(start,end) 从start开始,截取到end位置,不包括end,(获取索引
substring(start,end)

从 start 位置开始,截取到 end 位置,不包括end 和 slice 基本相同

// 从下标 2 开始 取 3 个字符
let str1 = 'abcdefg';
let str2 = str1.substr(2,3);
console.log(str2); // cde
// 从下标 1 开始,截取到下标 3 之前
let str3 = 'abcdefg';
let str4 = str3.slice(1,3);
console.log(str4); // bc
let str5 = 'abcdefg';
let str6 = str5.substring(1,3);
console.log(str6); // bc

replace()方法

replace() 方法用于在字符串中用一些字符替换另一些字符,其使用格式如下:

// 字符串.replace(被替换的字符串, 要替换为的字符串);
let str1 = 'abcdefg';
let str2 = str1.replace('abc','123');
console.log(str2); // 123defg

split()方法

split()方法用于切割字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个

数组。其使用格式如下:

// 字符串.split("分割字符")
let str1 = 'abcdefg';
let str2 = str1.split();
console.log(str2); // ['abcdefg']
let str3 = str1.split('');
console.log(str3); // ['a', 'b', 'c', 'd', 'e', 'f', 'g']
let str4 = '123,456,789';
let str5 = str4.split(',');
console.log(str5); // ['123', '456', '789']

希望对大家有所帮助   ˃̶͈ ˂̶͈

目录
相关文章
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法详解
本指南详细介绍在Linux系统中安装和管理Node.js的步骤。首先检查现有环境,包括查看当前版本和清除旧版本;接着通过NodeSource仓库安装最新版Node.js并验证安装结果。推荐使用nvm(Node Version Manager)进行多版本管理,便于切换和设置默认版本。同时,提供常见问题解决方法,如权限错误处理和全局模块迁移方案,以及版本回滚操作,确保用户能够灵活应对不同需求。
1455 0
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
1467 80
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
688 1
|
监控 JavaScript Java
Node.js中内存泄漏的检测方法
检测内存泄漏需要综合运用多种方法,并结合实际的应用场景和代码特点进行分析。及时发现和解决内存泄漏问题,可以提高应用的稳定性和性能,避免潜在的风险和故障。同时,不断学习和掌握内存管理的知识,也是有效预防内存泄漏的重要途径。
1097 159
|
JavaScript 前端开发 Java
js 垃圾回收机制的方法
JS回收机制方法讲解
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
435 63
|
JavaScript 前端开发
.js方法参数argument
【10月更文挑战第26天】`arguments` 对象为JavaScript函数提供了一种灵活处理参数的方式,能够满足各种不同的参数传递和处理需求,在实际开发中具有广泛的应用价值。
461 63
|
JavaScript 前端开发 Java
深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
Array.find() 是 JavaScript 数组方法中一个非常实用和强大的工具。它不仅提供了简洁的查找操作,还具有性能上的独特优势:返回的引用能够直接影响原数组的数据内容,使得数据更新更加高效。通过各种场景的展示,我们可以看到 Array.find() 在更新、条件查找和嵌套结构查找等场景中的广泛应用。 在实际开发中,掌握 Array.find() 的特性和使用技巧,可以让代码更加简洁高效,特别是在需要直接修改原数据内容的情形。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一