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-TreeView父子联动效果保持节点状态一致
Aug 12 Javascript
Mootools 1.2 手风琴(Accordion)教程
Sep 15 Javascript
Jquery乱码的一次解决过程 图解教程
Feb 20 Javascript
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
AngularJS 验证码60秒倒计时功能的实现
Jun 05 Javascript
Angular实现预加载延迟模块的示例
Oct 12 Javascript
vue中添加mp3音频文件的方法
Mar 02 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 Javascript
微信小程序动态设置图片大小的方法
Nov 21 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
Dec 23 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/08/05 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
php压缩文件夹最新版
2018/07/18 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
js实现秒表计时器
2019/12/16 Javascript
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
Python常用模块用法分析
2014/09/08 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
python中的lambda表达式用法详解
2016/06/22 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
python 实现控制鼠标键盘
2020/11/27 Python
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
《青蛙看海》教学反思
2014/04/23 职场文书
百万英镑观后感
2015/06/09 职场文书
暑期工社会实践报告
2015/07/13 职场文书
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
Python实现为PDF去除水印的示例代码
2022/04/03 Python