最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
JavaScript 中 String 类型里字符串重复的方法实现
时间:2026-07-16 09:00:57 编辑:袖梨 来源:一聚教程网
JavaScript中实现字符串重复最直接的方式是使用ES6引入的String.prototype.repeat()方法,它接受非负整数参数返回重复后的新字符串;不支持时可用Array(n+1).join(str)或循环拼接兼容旧环境。
JavaScript 中实现字符串重复,最直接的方式是使用原生的 String.prototype.repeat() 方法,它简洁、高效且语义清晰。
使用原生 repeat() 方法(推荐)
ES6 引入了 repeat(),接受一个非负整数参数,返回将原字符串重复指定次数后的新字符串:
-
"a".repeat(3)→"aaa" -
"hi ".repeat(2)→"hi hi " -
"x".repeat(0)→""(空字符串) - 传入负数、
NaN或大于2^31−1的值会抛出RangeError
兼容旧环境的手动实现(如 IE)
若需支持不支持 repeat() 的老版本浏览器(如 IE),可自行封装一个 polyfill 或工具函数:
- 用空字符串初始化结果,循环拼接
- 或利用数组技巧:
Array(n + 1).join(str)(注意:当n === 0时,Array(1).join(str)返回空字符串,符合预期) - 更健壮的写法(处理边界和类型):
function repeat(str, count) { if (typeof str !== 'string') str = String(str); count = Math.floor(Number(count)); if (count < 0 || !isFinite(count)) return ''; return Array(count + 1).join(str);}
注意点与常见误区
重复操作看似简单,但容易忽略几个关键细节:
立即学习“Java免费学习笔记(深入)”;
-
repeat()不修改原字符串,始终返回新字符串(字符串在 JS 中不可变) - 传入小数会被自动向下取整,例如
"x".repeat(2.9)等价于"x".repeat(2) - 大量重复(如百万次)可能导致内存溢出或性能问题,应结合业务场景评估合理性
- 不要用
for循环反复+=拼接长字符串,V8 等引擎虽已优化,但数组join或repeat仍更可靠