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 相关文章推荐
JavaScript 检测浏览器和操作系统的脚本
Dec 26 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
Feb 26 Javascript
javascript Slip.js实现整屏滑动的手机网页
Nov 25 Javascript
基于JavaScript实现定时跳转到指定页面
Jan 01 Javascript
node.js微信公众平台开发教程
Mar 04 Javascript
Angularjs之filter过滤器(推荐)
Nov 27 Javascript
AngularJS执行流程详解
Feb 17 Javascript
Vue数组更新及过滤排序功能
Aug 10 Javascript
vue用递归组件写树形控件的实例代码
Jul 19 Javascript
node错误处理与日志记录的实现
Dec 24 Javascript
JS集合set类的实现与使用方法示例
Feb 01 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
May 13 Javascript
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
PHP4中session登录页面的应用
2008/07/25 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
JavaScript省市联动实现代码
2014/02/15 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
新闻专业推荐信范文
2013/11/20 职场文书
语文教学感言
2014/02/06 职场文书
秋游活动策划方案
2014/02/16 职场文书
报关专员求职信范文
2014/02/22 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python