#同#

  1. 三个方法都是对字符串的截取操作,返回被操作的字符串,不会修改字符串本身;
  2. 都接受一或两个参数,第一个参数都为开始的位置;
  3. 只有一个参数且为正数的情况下返回的结果相同;
var str = "12345678";
console.log(str.slice(3)); // "45678"
console.log(str.substring(3)); // "45678"
console.log(str.substr(3)); // "45678"
复制代码

#异# ###1. 第二个参数含义不同### slice()substring()第二个参数含义都为指定字符串最后一个字符后面的位置, 而substr()第二个参数含义为返回的字符数量

var str = "12345678";
console.log(str.slice(3,4)); // "4"
console.log(str.substring(3,4)); // "4"
console.log(str.substr(3,4)); // "4567"
复制代码

###2. 参数为负数###

  • slice()会把负数与字符串长度相加
var str = "12345678";
console.log(str.slice(-3)); // 相当于 scice(5)  =>  "678"
console.log(str.slice(-3,7)); // 相当于 scice(5,7)  =>  "67"
console.log(str.slice(3,-3)); // 相当于 scice(3,5)  =>  "45"
console.log(str.slice(-5,-3)); // 相当于 scice(3,5)  =>  "45"
复制代码
  • substring()会把负数转换为0
var str = "12345678";
console.log(str.substring(-3)); // 相当于 substring(0)  =>  "12345678"
console.log(str.substring(-3,7)); // 相当于 substring(0,7)  =>  "1234567"
console.log(str.substring(-5,-3)); // 相当于 substring(0,0)  =>  ""
复制代码
  • substr()第一个参数为负数会把负数与字符串长度相加和slice()相同,第二个参数为负数返回空字符串
var str = "12345678";
console.log(str.substr(-3)); // 相当于 substr(5)  =>  678
console.log(str.substr(5,-3)); // 相当于 substr(5,0)  =>  ""
复制代码

###3. 两个参数位置颠倒### 意思为将较大的数作为开始位置,而将较小的数作为结束位置, 这个不同点只在slice()substring()才存在, substr()只有一个参数表示位置,还有一个表示长度,所以不存在这个问题

  • slice()会返回空字符串
var str = "12345678";
console.log(str.slice(5,3)); // ""
console.log(str.slice(-3,3)); // 相当于 scice(5,3)  =>  ""
console.log(str.slice(7,-3)); // 相当于 scice(7,5)  =>  ""
复制代码
  • substring()调换两个参数的位置
var str = "12345678";
console.log(str.substring(5,3)); // 相当于 substring(3,5)  =>  "45"
console.log(str.substring(-3,3)); // 相当于 substring(0,3)  =>  "123"
console.log(str.substring(7,-3)); // 相当于 substring(7,0)  => substring(0,7)  => "1234567"
复制代码

#总结# 来张表吧

本篇如能对您有所帮助,实在是感到荣幸。如有不合理之处也请大家多多指点。

转载于:https://juejin.im/post/5cbbd87be51d456e3b70189d

slice(),substring()和substr()的异同相关推荐

  1. 三种JS截取字符串方法 slice(),substring()和substr()

    JS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数: var stmp = "rcinn.cn"; 使用一 ...

  2. slice,substring,substr的区别

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

  3. 截取字符串slice(),substring() ,substr()。

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...

  4. substring、substr以及slice、splice用法和区别

    关于substring() substring(start,stop)表示返回从start开始到stop处之间的新字符串,其长度为stop减 start. 特点: 包含start,但不包含stop 且 ...

  5. 【JS点滴】substring和substr以及slice和splice的用法和区别。

    那么就由一道笔试题引入吧,已知有字符串a="get-element-by-id",写一个function将其转化成驼峰表示法"getElementById": ...

  6. js字符串截取函数的三种方式(slice()、substring()、substr())

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...

  7. html5 截取字符串,JS截取字符串之substring、substr和slice详解

    本文详细的介绍了JavaScript中substring().substr()和slice()三个js字符串截取的方法,substring()方法用于提取字符串中介于两个指定下标之间的字符.subst ...

  8. 【JavaScript String对象方法】字符串片段提取:slice()、substring()、substr()

    当参数相同时,返回结果是否相同 slice() substring() substr() 单正参 ✅ ✅ ✅ 单负参 ✅ ❌ (负参转换为 0,返回全字符串) ✅ 双正参 ✅ ✅ ❌ 双负参 ✅ nu ...

  9. nodejs 截断字符串_js字符串截取函数slice()、substring()、substr()

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...

最新文章

  1. JAVA中文字符串编码--GBK转UTF-8
  2. objective-c 编程总结(第六篇)运行时操作 - 方法交换
  3. 我常用的python函数(part1)--内置函数isinstance
  4. dev gridcontrol 根据数据获取索引_MySQL 索引分析除了 EXPLAIN 还有什么方法?
  5. 关于windows10 CMD 的一些操作
  6. SpringBoot2.0 基础案例(13):基于Cache注解模式,管理Redis缓存
  7. php安装扩展igbinary
  8. 卷积神经网络CNN算法原理
  9. 小米集团王嵋因错误表达致歉并请辞;亚马逊云服务出现中断,许多网站受到影响;deepin 深度系统更新发布|极客头条...
  10. SpringCloud的Ribbon自定义负载均衡算法
  11. Linux安装webmin
  12. Linux用户及用户组设置
  13. 分布式系统面试题:分布式事务解决方案?
  14. 怎么在Excel中生成Latex代码——excel2latex插件
  15. 《失业的程序员》(十二):潜意识的智商
  16. RSA2048 private key der格式结构
  17. 回溯法实现求解子集合和问题
  18. 设备接入ONENET(2)STM32 + ESP8266(MQTT协议)接入云 :使用 OneNET 官方麒麟座开发板例程
  19. 2023 OneTool多平台助手程序源码 开心版
  20. 计算机交互媒体应用范围,浅析交互媒体设计中的科技与艺术的关系

热门文章

  1. android stadio svn 使用技巧
  2. 【Java基础】基本类型与运算
  3. Map.putAll()用法
  4. 解析SharedPreferences
  5. HBase搭建完全分布式环境
  6. bzoj2396:神奇的矩阵
  7. DOMContentLoaded与load的区别
  8. jdbc连接操作mysql,直接操作和预处理方式
  9. C# .net中cookie值为中文时的乱码解决方法
  10. android 自定义 styleable 属性