JavaScript字符串不可变,所有方法均返回新字符串;slice推荐替代substring和substr;includes、indexOf等用于查找判断;split与join高频配合使用。

字符串不可变,所有方法都返回新字符串
JavaScript 中的字符串是原始类型,一旦创建就无法修改。所有所谓“操作”实际都是生成新字符串,原字符串保持不变。这点常被初学者忽略,导致 str.toUpperCase() 后忘记赋值,结果还是旧值。
-
str.replace()只替换第一个匹配项,要全局替换得用正则:str.replace(/a/g, 'b') -
str.slice()、str.substring()、str.substr()行为不同:substr()已被废弃,slice()支持负数索引,substring()会自动交换参数顺序 - 拼接大量字符串时,
arr.join('')比循环+=更快,尤其在长文本场景下
提取子串:slice / substring / substr 的区别必须分清
三者都返回子串,但处理负数和参数顺序的方式完全不同,混用容易出错。
const str = 'hello'; str.slice(1, 4); // 'ell' str.slice(-4, -1); // 'ell' ← 负数从末尾计数 str.substring(1, 4); // 'ell' str.substring(-4, -1); // '' ← 负数被转为 0 str.substring(4, 1); // 'ell' ← 自动交换 1 和 4
推荐统一用 slice():语义清晰、支持负索引、不魔改参数,现代代码中已基本替代另两个。
查找与判断:includes / indexOf / startsWith / endsWith
这些方法返回布尔值或索引,适用于条件判断和定位。注意大小写敏感,且 includes() 不支持正则。
立即学习“Java免费学习笔记(深入)”;
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
-
str.includes('abc')→ 布尔值,ES6+,最常用 -
str.indexOf('abc')→ 返回首个匹配索引,没找到为-1,兼容性最好 -
str.startsWith('abc', 2)→ 从位置 2 开始检查是否以 'abc' 开头 -
str.endsWith('xyz', 5)→ 检查前 5 个字符是否以 'xyz' 结尾
如果需要正则查找(比如忽略大小写),必须用 str.search(/abc/i) 或 str.match(/abc/gi),不能靠上面几个方法。
分割与连接:split() 和 join() 是一对高频搭档
split() 把字符串切为数组,join() 把数组拼回字符串。它们常配合使用,比如清洗空格、去重、格式化。
const csv = 'a, b , c';
csv.split(',').map(s => s.trim()).join('|'); // 'a|b|c'
注意:split('') 可将字符串转为字符数组;但若字符串含 emoji 或代理对(如 ?),split('') 仍可能出错,更安全用 [...str] 或 Array.from(str)。
正则作为 split() 参数时(如 split(/\s+/)),能处理多个连续分隔符,这是纯字符串分隔做不到的。










