一、字符串
slice(startIndex, endBeforeIndex)
  endBeforeIndex < 0,则 endBeforeIndex 为 负数,第二个参数为字符串长度加上负值,之后如果第二个参数大于第一个参数,则返回空字符串。

substring(startIndex, endBeforeIndex)
  endBeforeIndex < 0,则 第二个参数会变成 0,可以看成会变成第一个参数,startIndex 为第二个参数,如果 startIndex 也为 <= 0,则返回字符串。

subStr(startIndex, length)
  如果第二个参数省略,默认为字符串长度;
  startIndex < 0,则 startIndex 的值可以由字符串长度加上 startIndex;或直接从后面算起。

split(separator, limit)
  将字符串分割成数组,separator 为分割的字符,不会返回数组中;limit 是返回的数组长度,可以省略。返回的数组长度比可匹配的 separator 多 1;
  separator 前后一定会返回一个数组元素,如果 separator 的后面没有元素了,则以空字符串 '' 表示。

二、数组
splice(array.splice(index, howmany, item1,.....,itemX))
  用于添加或删除数组中的元素。注意:这种方法会改变原始数组。
  一个参数执行的是删除,参数一是开始删除下标,删除个数从开始下标开始到结束;
  两个参数执行的是删除,参数一是开始删除下标,参数二是删除的个数;
  三个参数时,如果第二个参数为 0, 则在下标 index 处把第三个参数后面的元素添加到数组中;如果第二个参数不为 0, 则在下标 index 处后开始删除 howmany 个参数,再把 item 各项添加到 index 下标后。

//         012345678
var str = "HTMLCSSJS"; console.log('slice(startIndex, endBeforeIndex)');
console.log( str.slice(1) ); // TMLCSSJS
console.log( str.slice(1, 3) ); // TM
console.log( str.slice(1, -2) ); // str.slice(1, 7); —— TMLCSS
console.log( str.slice(5, -6) ); // str.slice(5, 3); —— 空字符串 console.log('substring(startIndex, endBeforeIndex)');
console.log( str.substring(1) ); // TMLCSSJS
console.log( str.substring(1, 3) ); // TM
console.log( str.substring(1, -2) ); // substring(1, 0) ——> subtring(0, 1); —— H
console.log( str.substring(-1, -2) ); // 空字符串 console.log('substr(startIndex, length)');
console.log( str.substr(1) ); // TMLCSSJS
console.log( str.substr(-1) ); // substr(8); —— S
console.log( str.substr(-2, 4) ); // substr(7, 4); —— JS
console.log( str.substr(-7, 4) ); // substr(2, 4); —— MLCS
console.log('\n'); console.log('str.split(separator, limit)');
console.log( str.split('') ); // (9) ['H', 'T', 'M', 'L', 'C', 'S', 'S', 'J', 'S']
console.log( str.split('', 4) ); // (4) ['H', 'T', 'M', 'L']
console.log( str.split('S') ); // (4) ['HTMLC', '', 'J', '']
console.log('\n'); var arr = [1, 2, 3, 4, 5];
console.log( arr.splice(1, 2) ); // (2) [2, 3] 从下标 1 开始 删除两个元素。返回被删除元素组成的数组
console.log( arr ); // (3) [1, 4, 5]
console.log( arr.splice(2) ); // [5]
console.log( arr ); // (2) [1, 4]
console.log('\n'); var arr2 = [1, 2, 3, 4, 5, 6, 7];
console.log( arr2.splice(1, 0, 123, 'happy') ); // []
console.log( arr2 ); // (9) [1, 123, 'happy', 2, 3, 4, 5, 6, 7]
console.log('\n'); var arr3 = [1, 2, 3, 4, 5, 6, 7];
console.log( arr3.splice(1, 2, 123, 'happy') ); // (2) [2, 3]
console.log( arr3 ); // (9) [1, 123, 'happy', 2, 3, 4, 5, 6, 7]
console.log('\n');

slice-substring-substr-split-splice的更多相关文章

  1. 字符串截取函数slice, substring, substr

    在日常项目需求中,常常会遇到需要截取字符串操作的工作,而ECMAScript为我们提供了原生的截取字符串的函数,而且提供了三个:slice, substring, substr.我们怎么判断在什么时候 ...

  2. 关于js的string的3个函数slice,substring,substr对比

    slice,substring,substr三个函数都是截取字符串,但是对参数的处理有区别 参数处理相似的两个函数式slice和substring slice(start,end)和substring ...

  3. slice,substring,substr的区别

    1.都为正整数//例子数据 var arr = [1,2,3,4,5,6,7], var str = "helloworld!"; //注意这里有个!号也算一位若有空格,空格也算一 ...

  4. 字符串截取slice() substring() substr()的区别?

    获取子字符串 slice()        substr()    substring() 不会修改字符串本身,他们只是返回一个基本类型的字符串值 var str='abcdefghijklmn'; ...

  5. JS字符串截取函数slice(),substring(),substr()的区别

    在JS中,slice().substring().substr()都有截取字符串的作用,那他们有哪些用法上的区别呢?如果你也有疑惑,这篇文章或许能够帮助到你. 一.substring() substr ...

  6. 怎样理解String的slice(), subString(), substr()三个方法

    String.prototype.slice() 是js字符串的切片工具方法, 用于对字符串做'裁剪'操作, 不改变原字符串. 'helloworld'.slice(0,5); // 'hello'; ...

  7. javascript篇-slice(),splice(),split(),substring(),substr()的用法以及区别

    1.slice(),从已经有的数组中返回选定的元素, 使用范围是:Array,string 语法:obj.slice(start,end) 参数: start: 必需.规定从数组(字符串)的哪个ind ...

  8. JS中数组和字符串具有的方法,以及substring,substr和slice的用法与区别

     String 对象属性 属性 描述 constructor 对创建该对象的函数的引用 length 字符串的长度 prototype 允许您向对象添加属性和方法 String 对象方法 方法 描述 ...

  9. JavaScript 字符串操作:substring, substr, slice

    在 JavaScript 中,对于字符串的操作有 substring, substr, slice 等好多个内置函数,这里给大家推荐一篇介绍 substring, substr, slice 三者区别 ...

  10. javascript 中slice,substr,substring方法的对比

    实际开发过程中,字符串是一种最常用的一种数据类型,而在程序中对字符串的操作也是十分繁琐,javascript中就提供了很多字符串相关的方法,然而由于方法过多,很多方法功能有交叉,参数有雷同,容易使用混 ...

随机推荐

  1. JS Promise对象学习

    Promise对象的三个状态 pending(进行中) fulfilled(已成功) rejected(已失败) Promise代表一个异步操作,对象的状态一旦改变,就不会再改变 Promise构造函 ...

  2. idea使用maven工程创建web项目并支持jsp

    主要要再pom文件里面添加依赖: <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> & ...

  3. 学习zabbix(二)

    超大规模门户网站集群架构: 运维30%的时间都在监控,监控要多维度: 监控(单机监控(系统监控).网络监控.应用监控.分布式监控): 业务监控(业务指标-->流量分析-->舆论监控): 流 ...

  4. TCP 重传、滑动窗⼝、流量控制、拥塞控制

    重传机制 TCP 会在以下两种情况发⽣超时重传: 数据包丢失 确认应答丢失 重传超时 重传超时是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果 ...

  5. 控制算法的划分(自适应控制、预测控制、模糊控制等,PID等;蚁群算法、神经网络,还有机器学习、人工智能中的很多方法)

    一般来说,控制器的设计,分为控制框架的选取,跟参数的优化.自适应控制.预测控制.模糊控制等,跟PID一样,是控制算法(我习惯称为控制框架). 而粒子群.遗传算法(类似的还有蚁群算法.神经网络,还有机器 ...

  6. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonpAPI和手势响应式组件

    导语 最近看到不少使用vue制作的音乐播放器,挺好玩的,本来工作中也经常使用Vue,一起交流学习,好的话点个star哦 本项目特点如下 : 1. 原生js封装自己的跨域请求函数,支持promise调用 ...

  7. vue 多级组件数据传递

    A包含B组件,B包含C组件   那么A 传递到C 组件可以通过 在B组件中绑定 $attrs 具体代码可以参见github: https://github.com/qiaoqiao10001/vueA ...

  8. Spring Boot-@Conditional注解以及衍生注解@ConditionalOnBean

    @Conditional:判断@Conditional指定的条件是否成立,如果成立才会给容器中添加组件,配置类里面的内容才会生效 我们发现有很多的自动配置类,但是这些自动配置类都有指定的条件,必须满足 ...

  9. mybatis plus @TableId注解 type属性的含义

    首先该注解用在主键id上,它的type属性有8种类型 AUTO(0),NONE(1),INPUT(2),ASSIGN_ID(3),ASSIGN_UUID(4),ID_WORKER(3),ID_WORK ...

  10. PicCompress —— 一款精简的图片压缩工具

    PicCompress 说明 之前上传博客图片过大不方便加载,还有一些微信平台的图片无法上传有大小限制,于是就打算开发个压缩图片的工具 支持图片格式 PNG(.png) JPEG(.jpg, .jpe ...