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将数组插入到另一个数组中的代码
Jan 10 Javascript
js倒计时小程序
Nov 05 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
bootstrap datetimepicker2.3.11时间插件使用
Nov 19 Javascript
微信小程序 图片宽度自适应的实现
Apr 06 Javascript
jquery实现搜索框功能实例详解
Jul 23 jQuery
vue点击input弹出带搜索键盘并监听该元素的方法
Aug 25 Javascript
详解vue-cli中使用rem,vue自适应
May 06 Javascript
layer iframe 设置关闭按钮的方法
Sep 12 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
Sep 17 Javascript
原生js canvas实现鼠标跟随效果
Aug 02 Javascript
Vue+Element UI实现概要小弹窗的全过程
May 30 Vue.js
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/11/03 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
php实现socket推送技术的示例
2017/12/20 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
jQuery 事件队列调整方法
2009/09/18 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
Python数据库的连接实现方法与注意事项
2016/02/27 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
基于Pytorch SSD模型分析
2020/02/18 Python
python实现简单文件读写函数
2021/02/25 Python
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
澳洲的服装老品牌:SABA
2018/02/06 全球购物
中药专业大学生医药工作求职信
2013/10/25 职场文书
公务员个人年终总结
2015/02/12 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript