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


Posted in Javascript onMay 24, 2011

在该书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()总是把较小的参数作为起始位,较大的数字最为终止位。
Javascript 相关文章推荐
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
jquery 如何动态添加、删除class样式方法介绍
Nov 07 Javascript
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
JavaScript获取当前日期是星期几的方法
Apr 06 Javascript
js在ie下打开对话窗口的方法小结
Oct 24 Javascript
jQuery 常见小例汇总
Dec 14 Javascript
node.js中debug模块的简单介绍与使用
Apr 25 Javascript
微信小程序实现上传图片功能
May 28 Javascript
详解关于Vuex的action传入多个参数的问题
Feb 22 Javascript
layui 监听select选择 获取当前select的ID名称方法
Sep 24 Javascript
vue实现滑动解锁功能
Mar 03 Vue.js
js中关于String对象的replace使用详解
May 24 #Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
May 24 #Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
May 24 #Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 #Javascript
三级下拉菜单的js实现代码
May 23 #Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
May 23 #Javascript
在Javascript里访问SharePoint列表数据的实现方法
May 22 #Javascript
You might like
德劲1104的电路分析与改良
2021/03/01 无线电
Linux编译升级php的详细方法
2013/11/04 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
sina的lightbox效果。
2007/01/09 Javascript
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
javaScript语法总结
2016/11/25 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
python构建深度神经网络(DNN)
2018/03/10 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
python实现日志按天分割
2019/07/22 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python