外观
字符串常用方法有哪些?
字符串是原始值,方法不会改原来的字符串,而是返回新字符串。和数组重叠的查找方法要记住:字符串没有 reverse,拆成数组再合回去。
原理
截取:slice(start, end) 支持负下标,substring 会把负值当成 0 并交换颠倒的起止。新代码用 slice。
查找:includes、startsWith、endsWith、indexOf。替换:replace 只换第一处,全局用正则加 g,或用 replaceAll。
拆分与合并:split 得到数组,join 是数组的方法。去空白用 trim、trimStart、trimEnd。
模板字符串用反引号,可以插值和换行。标签模板可以把字符串交给函数处理,库用它做安全转义或国际化。
追问
怎么反转字符串?
str.split("").reverse().join("")。如果要正确处理 emoji,不能按 UTF-16 码元拆,要用 Array.from(str) 或 for...of,它们按码点遍历。
slice 和 substring 的差别?
slice 的负数从末尾数。substring 把负数变 0,并且如果 start 大于 end 会交换。
易错点
- 字符串按下标赋值不会改变原值,原始值不可变。
split("")会拆散代理对,表情可能变乱码。replace不加g只替换第一个匹配。