JavaScript:substring 与 slice 的核心区别

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