几种String对象方法的区别
1.在String对象方法中,发现.slice()方法和.substring()方法的作用几乎相同,都是根据起始索引返回截取得到的字符串。经过查阅资料和实测得到区别:
正常情况下索引都为正值,返回值为其实索引之间的字符串,包括起始,不包括结束索引,即 [起始索引,结束索引)
刚开始我以为索引为负值的情况下从尾部算起,倒数第一个字符为0,倒数第二个字符为-1,实际测试发现是错误的,需要注意。
slice()方法里的索引可以为负数,负数表示从尾部算起,倒数第一个字符为索引为-1,以此往前为-2,-3类推,起始索合结束索引都可以随意使用正数和负数,不管用正数还是负数必须保证起始索引对应的字符在结束索引对应的字符之前,否则返回的是空值。负数的用处:我想到的用处就是当字符串较长时,正数数过来不太方便时,或者需求需要倒过来遍历时,可以根据情况使用负索引比较方便。slice()方法规定了第一个索引为起始索引,第二个为结束索引。
var str = "0123456789a" //索引为0-10 或者说为-11到-1
var x = str.slice(-11,-1) //
var y = str.slice(-1,11); //a
var z = str.slice(-2,-4); //空值
var i = str.slice(0,-3); //
substring()方法取start和end中较小的值为start,二者相等返回空字符串,任何一个参数为负数被替换为0(即该值会成为start参数)。
var x = str.substring(0,3); //
var y = str.substring(3,0); //
var z = str.substring(3,3); //空
var i = str.substring(-4,3); //012,-4被替换成了0
var j = str.substring(3,-5); //012,-5被替换成了0
2..substr()这个截取方法则有明显区别,这个方法的参数是起始索引和长度,起始索引也可以为负索引。长度为0或者负值时返回值为空值。
3..search()、.match()、.indexOf()之间的区别
.match()返回与正则匹配的字符串
.search()返回与正则匹配的索引
.indexOf()返回与指定子字符串匹配的第一次出现的索引
.search()与.indexOf()区别:内部参数不同,search里是可以使字符串也可以是正则,indexOf里只能是字符串,对于简单的字符串查找都可以使用,对于复杂的正则查找只能用search。indexOf()比search()消耗资源更少效率更高。
几种String对象方法的区别的更多相关文章
- PowerShell String对象方法 1
PowerShell String对象方法 1 8 6月, 2013 在 Powershell tagged 字符串 / 对象 / 文本 by Mooser Lee 从之前的章节中,我们知道Powe ...
- JavaScript Number 对象 Javascript Array对象 Location 对象方法 String对象方法
JavaScript Number 对象 Number 对象属性 属性 描述 constructor 返回对创建此对象的 Number 函数的引用. MAX_VALUE 可表示的最大的数. MIN_V ...
- JavaScript String 对象方法
String 对象方法 方法 描述 anchor() 创建 HTML 锚. big() 用大号字体显示字符串. blink() 显示闪动字符串. bold() 使用粗体显示字符串. charAt() ...
- 转:GET和POST两种基本请求方法的区别
原文地址:GET和POST两种基本请求方法的区别 原文如下: GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL ...
- 二.OC基础--1,对象的存储细节,2,#pragma mark指令,3,函数和对象方法的区别,4,对象和方法之间的关系 ,5.课堂习题
1,对象的存储细节, 1. 当创建一个对象的时候:Person *p1 = [Person new],做了三件事情: 1,申请堆内存空间: 2,给实例变量初始化: 3,返回所申请空间的首地址; 2. ...
- javascript中string对象方法中的slice、substring、substr的区别联系
1.slice.substring.snustr均属于String的对象方法,用于截取或提取字符串片段,三者均布破坏原先的字符串,而是以新的字符串返回被提取的部分. <script> va ...
- Cesium 中两种添加 model 方法的区别
概述 Cesium 中包含两种添加 model 的方法,分别为: 通过 viewer.entities.add() 函数添加 通过 viewer.scene.primitives.add() 函数添加 ...
- javascript string对象方法总结
1.anchor() 用于创建html锚,也就是a标签,()中可以带参数,是a标签的name属性值. var string="hello world"; document.writ ...
- String对象方法扩展
/** *字符串-格式化 */ String.prototype.format = function(){ var args = arguments;//获取函数传递参数数组,以便在replace回调 ...
随机推荐
- a.vim 插件
引用自 https://blog.csdn.net/zhangsming/article/details/42652695 vim插件之快速切换头(.h)/源(.c,.cpp,.cc)文件——a.v ...
- 06python上
product_list=[ ('Mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike',2000), ] ...
- Android Jetpack 概述
Android Jetpack Overview Android Jetpack Jetpack is a set of libraries, tools and architectural guid ...
- 【浅说】堆(heap)和栈(stack)区别
在了解堆与栈之前,我们想来了解下程序的内存分配 一个编译的程序占用的内存分为以下几个部分 : 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式 ...
- python_05 可变类型与不可变类型、集合、字符串格式化
可变数据类型与不可变数据类型: 1.可变:列表,字典 2.不可变:字符串,数字,元组 访问顺序: 1.顺序访问:字符串,列表,元组 2.映射:字典 集合 由不同元素组成的集合,集合中是一组无序排列的可 ...
- IDEA(MAC) 快捷键
从eclipse到IDEA:从Windows到MAC 有些不习惯,记录一些日常使用的快捷键 1.格式化代码 command+alt+L 2.导包 alt+ enter 3.自动生成该类型的对象 com ...
- Ado.net之对数据库的增删改查
一.了解Command对象 1.Command对象:封装了所有对外部数据源的操作,包括增删改查和执行存储过程,并在执行完成后返回合适的结果,同Connection一样,对于不同的数据源,Ado.net ...
- .do的消除
其实就是在web.xml中去掉.do即可 那里有拦截器作用,什么样的文件可以进入前端控制器1
- FlannBasedMatcher 立体匹配
#include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #i ...
- [转]MAC系统下Sublime Text3 配置Python3详细教程(亲测有效)
原文地址: https://blog.csdn.net/weixin_41768008/article/details/79859008?tdsourcetag=s_pctim_aiomsg 这段时间 ...