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 相关文章推荐
IE 下的只读 innerHTML
Aug 21 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
Feb 05 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
May 26 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
Javascript for in的缺陷总结
Feb 03 Javascript
JS实现图片放大缩小的方法
Feb 15 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
Aug 25 Javascript
VueJs监听window.resize方法示例
Jan 17 Javascript
详解关于webpack多入口热加载很慢的原因
Apr 24 Javascript
基于vue.js实现购物车
Jan 15 Javascript
用JavaScript实现贪吃蛇游戏
Oct 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
JS继承 笔记
2011/07/13 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
ECMAScript6--解构
2017/03/30 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
Python数据类型详解(一)字符串
2016/05/08 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
python plotly画柱状图代码实例
2019/12/13 Python
python3 kubernetes api的使用示例
2021/01/12 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
历史学专业推荐信
2013/11/06 职场文书
大学生职业生涯规划书范文
2014/01/14 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
《刷子李》教学反思
2016/02/20 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL