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处理xml格式的返回数据(实例解析)
Nov 28 Javascript
Vue.JS入门教程之自定义指令
Dec 08 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
Apr 19 Javascript
在node中如何使用 ES6
Apr 22 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
angular 用拦截器统一处理http请求和响应的方法
Jun 08 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 Javascript
关于axios不能使用Vue.use()浅析
Jan 12 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
Jan 22 jQuery
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
react使用CSS实现react动画功能示例
May 18 Javascript
详解JS预解析原理
Jun 16 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
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
twig模板常用语句实例小结
2016/02/04 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
python怎么对数字进行过滤
2020/07/05 Python
python怎么删除缓存文件
2020/07/19 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
Linux机考试题
2015/10/16 面试题
摄影专业毕业生求职信
2014/03/13 职场文书
经销商年会策划方案
2014/05/29 职场文书
营销总监岗位职责
2014/09/16 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
义诊活动通知
2015/04/24 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
运动会新闻报道稿
2015/07/22 职场文书
转变工作作风心得体会
2016/01/23 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技