JavaScript:substring 与 slice 的核心区别
一、速览对比表
| 对比维度 | substring(start, end) | slice(start, end) |
|---|---|---|
| 负数索引 | 自动转为0 | 从末尾倒数(-1为最后一位) |
| start > end | 自动交换两者位置 | 不交换,直接返回空字符串"" |
| 适用范围 | 仅限 String | 支持 String 和 Array |
| 省略 end | 截取至末尾 | 截取至末尾 |
二、代码验证(避坑必备)
conststr='012345';// 1. 负数索引的区别console.log(str.substring(-3,4));// '0123'(-3 被视为 0)console.log(str.slice(-3,4));// '3' (-3 表示倒数第 3 位,即索引 3)// 2. start > end 的区别console.log(str.substring(4,1));// '123' (自动交换为 substring(1, 4))console.log(str.slice(4,1));// '' (不交换,直接返回空)