一、字符串
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. Java 中 Semaphore 是什么?

    Java 中的 Semaphore 是一种新的同步类,它是一个计数信号.从概念上讲,从 概念上讲,信号量维护了一个许可集合.如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可.每 ...

  2. 使用kindeditor

    首先在http://kindeditor.net/demo.php下载样式 点击右上角的下载按钮 点击官方下载下载之后解压出来 然后在桌面创建一个文件夹 然后回到刚才的http://kindedito ...

  3. Java 中,DOM 和 SAX 解析器有什么不同?

    DOM 解析器将整个 XML 文档加载到内存来创建一棵 DOM 模型树,这样可以 更快的查找节点和修改 XML 结构,而 SAX 解析器是一个基于事件的解析器, 不会将整个 XML 文档加载到内存.由 ...

  4. Java_lambda表达式之"stream流学习,Map学习,collect学习,Conllectors工具类学习"

    Lambda表达式学习 对List<Integer> userIdList = UserList.stream().map(User::getUserId).collect(Collect ...

  5. 记一次 Nuxt 3 在 Windows 下的打包问题

    0. 背景 之前用 Nuxt 3 写了公司的官网,包括了样式.字体图标.图片.视频等,其中样式和字体图标放在了 assets/styles 和 assets/fonts 目录下,而图片和视频则放在了 ...

  6. 【freertos】007-系统节拍和系统延时管理实现细节

    前言 本章节的时钟系统节拍主要分析FreeRTOS内核相关及北向接口层,南向接口层不分析. 本章节的系统延时主要分析任务系统延时实现. 原文:李柱明博客:https://www.cnblogs.com ...

  7. L298N双H桥集成电路板的双H桥是什么意思?为什么要叫双H桥?L298N工作原理

    H桥是一个典型的直流电机控制电路,因为它的电路形状酷似字母H,故得名与"H桥".4个三极管组成H的4条垂直腿,而电机就是H中的横杠. 控制两个三极管的导通来控制电流方向,从而实现电 ...

  8. 微信小程序实时通讯(websocket)问题

    这几天值班忙的不要不要,人工智能这块看的都是零零散散,今天就来写写小程序的实时通讯吧.小程序端://这个是连接 lianjie:function(){ var socketOpen = false / ...

  9. webpack+vue-cli+ElementUI+vue-resource 前端开发

    线上商城项目(电脑0环境)1.安装node.js (参考http://www.runoob.com/nodejs/nodejs-install-setup.html): 2.安装 webpack (全 ...

  10. 网络安全—xss

    1.xss的攻击原理 需要了解 Http cookie ajax,Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码.比如 ...