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用户自定义类的类名称的代码
Mar 08 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
Oct 24 Javascript
angularJS 中input示例分享
Feb 09 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
Jul 04 Javascript
EasyUI Combobox设置默认值 获取text的方法
Nov 28 Javascript
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 jQuery
express 项目分层实践详解
Dec 10 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
Dec 11 Javascript
mock.js实现模拟生成假数据功能示例
Jan 15 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
Jul 09 Javascript
微信小程序实现购物车代码实例详解
Aug 29 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 七大优势分析
2009/06/23 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php实现两个数组相加的方法
2015/02/17 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
PHP asXML()函数讲解
2019/02/03 PHP
laravel入门知识点整理
2020/09/15 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
Vue计算属性的使用
2017/08/04 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
vue中echarts3.0自适应的方法
2018/02/26 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
社区道德讲堂实施方案
2014/03/21 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
Python集合的基础操作
2021/11/01 Python