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简单的拖动效果实现原理及示例
Jul 26 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 Javascript
jQuery右下角旋转环状菜单特效代码
Aug 10 Javascript
解析Node.js基于模块和包的代码部署方式
Feb 16 Javascript
TypeOf这些知识点你了解吗
Feb 21 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
Feb 14 Javascript
高效的jQuery代码编写技巧总结
Feb 22 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
vue下拉菜单组件(含搜索)的实现代码
Nov 25 Javascript
JQuery发送ajax请求时中文乱码问题解决
Nov 14 jQuery
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 zip文件解压类代码
2009/12/02 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
php实现文件下载代码分享
2014/08/19 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
客户端静态页面玩分页
2006/06/26 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
安装dbus-python的简要教程
2015/05/05 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
python 实现识别图片上的数字
2019/07/30 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
python zip()函数的使用示例
2020/09/23 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
仓管员岗位职责范文
2013/11/08 职场文书
银行简历自我评价
2014/02/11 职场文书
员工考核评语大全
2014/04/26 职场文书
实验室标语
2014/06/21 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
党员查摆剖析材料
2014/10/10 职场文书
运动会报道稿大全
2015/07/23 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python