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 相关文章推荐
jQuery 学习第七课 扩展jQuery的功能 插件开发
May 17 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
Apr 27 Javascript
jquery将一个表单序列化为一个对象的方法
Jan 03 Javascript
简述JavaScript中正则表达式的使用方法
Jun 15 Javascript
使用requestAnimationFrame实现js动画性能好
Aug 06 Javascript
js实现的星星评分功能函数
Dec 09 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
探究JavaScript中的五种事件处理程序方式
Dec 07 Javascript
Vue不能观察到数组length的变化
Jun 08 Javascript
详解使用jest对vue项目进行单元测试
Sep 07 Javascript
vue组件之间的数据传递方法详解
Apr 19 Javascript
JavaScript实现拖拽盒子效果
Feb 06 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基础教程 php内置函数实例教程
2012/08/21 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
解析PHP生成静态html文件的三种方法
2013/06/18 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
python执行CMD指令,并获取返回的方法
2018/12/19 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
JD Sports德国官网:英国领先的运动鞋和运动服饰零售商
2018/02/26 全球购物
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
企业申诉管理制度
2014/01/30 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
幼儿园家长评语
2014/02/10 职场文书
《春天来了》教学反思
2014/04/07 职场文书
十佳少年事迹材料
2014/12/25 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python
深入理解python协程
2021/06/15 Python