JavaScript:substring 与 slice 的核心区别

一、速览对比表

对比维度substring(start, end)slice(start, end)
负数索引自动转为 0从末尾倒数(-1 为最后一位)
start > end自动交换两者位置不交换,直接返回空字符串 ""
适用范围仅限 String支持 String 和 Array
省略 end截取至末尾截取至末尾

二、代码验证(避坑必备)

const str = '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));      // ''    (不交换,直接返回空)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐