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 25 Javascript
深入理解JavaScript作用域和作用域链
Oct 21 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
JS保存、读取、换行、转Json报错处理方法
Jun 14 Javascript
关于img的href和src取变量及赋值的方法
Apr 28 Javascript
Jquery zTree 树控件异步加载操作
Feb 25 Javascript
JavaScript生成验证码并实现验证功能
Sep 24 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
Jun 30 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
Aug 08 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 Javascript
Element Backtop回到顶部的具体使用
Jul 27 Javascript
JavaScript实现五子棋小游戏
Oct 26 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
PHP开发的一些注意点总结
2010/10/12 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
JS 遮照层实现代码
2010/03/31 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
JS中Location使用详解
2015/05/12 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
JavaScript字符串对象
2017/01/14 Javascript
javascript实现下雨效果
2017/03/27 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
简单谈谈Python中的闭包
2016/11/30 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
python实现Adapter模式实例代码
2018/02/09 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
django-初始配置(纯手写)详解
2019/07/30 Python
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
社区志愿者活动方案
2014/08/18 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
教师个人年度总结
2015/02/11 职场文书