javascript中String类的subString()方法和slice()方法

 更新时间:2011年05月24日 23:45:06   作者:  
最近在看《Javascript高级程序设计》一书,在书中发现一些以前没有接触过的且比较实用的技巧和知识点,想通过博客记录一下,以加深记忆。
在该书2.8.4节中讲到String类中的subString()方法和slice()方法,其用法和返回结果都基本相同,如下示例:
复制代码 代码如下:

var strObj = new String("hello world");
alert(strObj.slice(3));   // 输出结果:"ol world"
alert(strObj.subString(3));   // 输出结果:"ol world"
alert(strObj.slice(3, 7)); // 输出结果:"lo w"
alert(strObj.subString(3,7)); // 输出结果:"lo w"

由以上代码的输出结果可已看出,slice()方法和subString()方调用方法法和输出结果完全一样,这两种方法返回的都是要处理的字符串的子串,都接受一个或两个参数,第一个参数是要获取的子串的起始位置,第二个参数是要获取子串的终止位置,如果第二个参数省略终止位置就默认为字符串的长度,且两个方法都不改变String对象自身的值。

为什么有两个功能完全相同的方法呢?事实上,这两个方法并不完全相同,不过只在参数为负值时,他们处理参数的方式稍有不同。

对于负数参数,slice()方法会用字符串的长度加上参数,subString()方法将其作为0处理,例如:
复制代码 代码如下:

var strObj = new String("hello world");
alert(strObj.slice(-3));      // 输出结果:"rld"
alert(strObj.subString(-3));    // 输出结果:"hello world"
alert(strObj.slice(3,-4));     // 输出结果:"lo w"
alert(strObj.subString(3,-4))   // 输出结果:"hel"

这样既可看到slice()和subString()方法的主要不同。当只有参数-3时,slice()返回"rld",subString()则返回"hello world"。这是因为对于字符串"hello world",slice(-3)将被转换成slice(8),而subString(-3)则转化成subString(0)。同样,使用3和-4差别也是很明显。slice()方法将被转换成slice(3,7),与前面的例子相同,返回"lo w"。而subString()方法则将这个两个参数解释为subString(0,3),实际上是:subString(0,3),因为subString()总是把较小的参数作为起始位,较大的数字最为终止位。

相关文章

  • Openlayers显示瓦片网格信息的方法

    Openlayers显示瓦片网格信息的方法

    这篇文章主要为大家详细介绍了Openlayers显示瓦片网格信息,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 小程序多文件上传 Tdesign的过程

    小程序多文件上传 Tdesign的过程

    众所周知,小程序文件上传还是有点麻烦的,其实主要还是小程序对的接口有诸多的不便,比如说,文件不能批量提交,只能一个个的提交,小程序的上传需要专门的接口,现在给大家分享小程序多文件上传 Tdesign的方法,感兴趣的朋友一起看看吧
    2023-11-11
  • js获取地址栏中传递的参数(两种方法)

    js获取地址栏中传递的参数(两种方法)

    本文主要介绍了如何获取地址栏中的参数的两种方法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • js实现字符串和数组之间相互转换操作

    js实现字符串和数组之间相互转换操作

    这篇文章主要介绍了js实现字符串和数组之间相互转换操作的相关资料,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • JS简单的轮播的图片滚动实例

    JS简单的轮播的图片滚动实例

    JS简单的轮播的图片滚动实例,需要的朋友可以参考一下
    2013-06-06
  • JavaScript中关键字 var、let、const的区别详解

    JavaScript中关键字 var、let、const的区别详解

    在JavaScript中,var、let和const是用于声明变量的关键字,它们之间存在一些区别,这篇文章就给大家详细介绍一下它们之间的区别,文章通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • 微信小程序实现长按拖拽排序功能

    微信小程序实现长按拖拽排序功能

    这篇文章主要为大家详细介绍了微信小程序实现长按拖拽排序功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • js如何准确获取当前页面url网址信息

    js如何准确获取当前页面url网址信息

    这篇文章主要为大家介绍了js准确获取当前页面url网址信息的多种方法,包括正则法、split拆分法等,需要的朋友可以参考下
    2016-04-04
  • 通过JavaScript实现图片压缩

    通过JavaScript实现图片压缩

    在学习的时候,有时候看到一些一些网站的图片是经过压缩处理的,因为压缩之后的图片会节省一部分你的内存空间,这样的话也可以提升性能,于是就比较好奇这是如何实现的,今天我们就简单的实现一下,需要的朋友可以参考下
    2023-06-06
  • js仿QQ邮箱收件人选择与搜索功能

    js仿QQ邮箱收件人选择与搜索功能

    这篇文章主要为大家详细介绍了js仿QQ邮箱收件人选择与搜索功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论