ES10 中的 String.prototype.slice() 和 String.prototype.substring() 的区别及使用

在前端开发中,我们经常需要对字符串进行截取操作。ES10 中提供了两个方法,分别是 slice()substring()。这两个方法看起来很相似,但实际上有一些区别。本文将详细介绍这两个方法的区别及使用。

slice() 方法

slice() 方法用于从字符串中提取指定的部分。它接受两个参数,分别是起始位置和结束位置。如果省略第二个参数,则会提取从起始位置到字符串末尾的所有字符。

下面是 slice() 方法的语法:

------------------- ----

其中,start 参数表示起始位置,可以是负数。如果是负数,则表示从字符串末尾开始计算。如果省略该参数,则默认为 0。

end 参数表示结束位置,也可以是负数。如果是负数,则表示从字符串末尾开始计算。如果省略该参数,则默认为字符串的长度。

下面是 slice() 方法的示例代码:

----- --- - ------- --------
-------------------------- -- -- --------
------------------------ ----- -- -- -------
--------------------------- -- -- --------
------------------------ ----- -- -- -------

substring() 方法

substring() 方法也用于从字符串中提取指定的部分。它接受两个参数,分别是起始位置和结束位置。如果省略第二个参数,则会提取从起始位置到字符串末尾的所有字符。

下面是 substring() 方法的语法:

----------------------- ----

其中,start 参数表示起始位置,不能是负数。如果省略该参数,则默认为 0。

end 参数表示结束位置,也不能是负数。如果省略该参数,则默认为字符串的长度。

下面是 substring() 方法的示例代码:

----- --- - ------- --------
------------------------------ -- -- --------
---------------------------- ----- -- -- -------
----------------------------- ---- -- -- -------
---------------------------- ----- -- -- ------- -

区别及使用

slice() 方法和 substring() 方法的区别在于对负数参数的处理方式。slice() 方法将负数参数转换为字符串长度加上负数参数,而 substring() 方法将负数参数视为 0。

另外,slice() 方法和 substring() 方法的第二个参数的处理方式也不同。slice() 方法将负数参数转换为字符串长度加上负数参数,而 substring() 方法将负数参数视为 0。

因此,如果你需要使用负数参数,建议使用 slice() 方法。

下面是一个示例代码,演示了如何使用 slice() 方法和 substring() 方法:

----- --- - ------- --------
-------------------------- -- -- --------
------------------------ ----- -- -- -------
--------------------------- -- -- --------
------------------------ ----- -- -- -------

------------------------------ -- -- --------
---------------------------- ----- -- -- -------
----------------------------- ---- -- -- -------
---------------------------- ----- -- -- ------- -

总结

slice() 方法和 substring() 方法都用于从字符串中提取指定的部分。它们的区别在于对负数参数的处理方式和第二个参数的处理方式。如果你需要使用负数参数,建议使用 slice() 方法。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66826b6ddc1ed1a61b3390d3