padEnd和padStart是ES2017新增的字符串补全方法:padStart在开头补字符至目标长度,padEnd在末尾补字符;均不修改原串、支持重复填充与截断、默认空格填充,IE不支持。

JavaScript 的 padEnd 和 padStart 是两个简洁实用的字符串格式化方法,用于在字符串前后补足指定字符,直到达到目标长度。它们不修改原字符串,而是返回新字符串,适合做对齐、编号补零、日志美化等场景。
padStart:在开头填充字符
语法:str.padStart(targetLength, padString)。从左侧开始补字符,使总长度达到 targetLength。若原字符串已达标,直接返回原串。
- 若
padString长度不足,会自动重复拼接(如用'0'补零,或用'- '做左对齐分隔) - 若
padString过长,只取前缀部分(如'abcde'.padStart(6, '1234567')→'1abcde') - 省略
padString默认用空格填充 - 常见用途:时间/日期补零(
'9'.padStart(2, '0')→'09')、ID 对齐('A12'.padStart(6, '0')→'00A12')
padEnd:在末尾填充字符
语法:str.padEnd(targetLength, padString)。行为与 padStart 对称,向右补足。
- 同样支持重复填充和截断逻辑
- 适合做文本右对齐、注释对齐、表格列宽控制(如日志中统一字段宽度:
'INFO'.padEnd(8) + 'User login'→'INFO User login') - 搭配空格或点号可实现“……”式省略效果(
'加载中'.padEnd(10, '.')→'加载中......')
注意事项与兼容性
这两个方法是 ES2017(ES8)新增特性,在 Node.js 8.0+ 和现代浏览器(Chrome 57+, Firefox 48+, Safari 10+, Edge 15+)中可用。
立即学习“Java免费学习笔记(深入)”;
- IE 完全不支持,需用 polyfill 或 Babel 转译
-
targetLength小于等于原字符串长度时,返回原字符串,不会截断 -
targetLength为负数或NaN时,等同于 0;传入小数会被向下取整(如5.9→5) - 避免用 Unicode 组合字符或 emoji 做
padString,某些环境可能因字形宽度计算差异导致对齐异常
简单对比示例
(以下均基于 const s = 'hi')
-
s.padStart(5, '0')→'000hi' -
s.padEnd(5, 'x')→'hixxx' -
s.padStart(3)→' hi'(默认空格) -
s.padEnd(1)→'hi'(长度未达标,不填充)


















