1、slice(start,stop)和substring(start,stop)  方法都是用于提取字符串中从start开始到stop-1间的字符(因为字符串索引是从0开始)。其中 start必选,stop可选。

2、现在主要讲两者间的不同之处

  substring(start,stop):

    1. 当start等于stop时 返回空字符串。

    2.stop可选:如果省略该参数,那么返回的子串会一直到字符串的结尾。

    3.如果start>stop,substring 会交换着两个参数,即从end参数开始截取到start-1位置结束。

    4.如果start或者stop中任意一个值大于字符串长度(length),那么这个值将会被字符串的长度替换。替换后看是否满足条件3,满足则走继续第3步。

    5.如果start和stop中任意一个值为负数(<0)或者是NaN(非数字),那么这个值会当做0来处理。

  slice(start,stop):

    1. 当start等于stop时 返回空字符串,和substring是一样的效果。

    2.stop可选:如果省略该参数,那么返回的子串会一直到字符串的结尾。和substring一样效果。

    3.如果start>stop,slice不会交换着两个参数位置,而是直接返回空 “”。

    4.如果start或者stop中任意一个值大于字符串长度(length),那么这个值将会被字符串的长度替换。和substring一样效果。

    5. 如果start是负数(<0):那么截取字符串将会以字符串长基准,向前减start绝对值个字符串开始到stop处结束。
      eg: var str ="abcdef";var s1=str.slice(-5,3);console.info(s1)  //bc    从 6-5 开始到 3 处结束 ,6 为字符串长度=slice(1,3);

     如果end是负数:那么会替换stop为(length-1)-math.abs(stop);  

      eg: var str="abcdef";var s1=str.slice(1,-2);console.info(s1);  //bcd  从 1 开始 到 6-1 -2=3 处结束

最后还有个 subStr(start.length)

这个比较好区分,他 返回从start(包括 start 所指的字符) 处开始的 length 个字符,没指定length或者length大于字符串长度返回到结尾字串。

 

      

    

javascript中String 对象slice 和substring 区别的更多相关文章

  1. JavaScript中String对象的match()、replace() 配合正则表达式使用

    正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时, ...

  2. javascript中string对象方法中的slice、substring、substr的区别联系

    1.slice.substring.snustr均属于String的对象方法,用于截取或提取字符串片段,三者均布破坏原先的字符串,而是以新的字符串返回被提取的部分. <script> va ...

  3. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  4. Javascript中String对象的的简单学习

    第十一课String对象介绍1:属性    在javascript中可以用单引号,或者双引号括起来的一个字符当作    一个字符对象的实例,所以可以在某个字符串后再加上.去调用String    对象 ...

  5. JavaScript中String对象处理HTML标记中文本的方法

    big():创建一个<big></big>标记,将这个字符串的字体变大blink():创建一个<blink></blink>标记,使字符串具有闪烁效果b ...

  6. javascript中的对象,原型,原型链和面向对象

    一.javascript中的属性.方法 1.首先,关于javascript中的函数/“方法”,说明两点: 1)如果访问的对象属性是一个函数,有些开发者容易认为该函数属于这个对象,因此把“属性访问”叫做 ...

  7. JavaScript中判断对象类型方法大全1

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  8. Javascript中的对象和原型(3)

    在Javascript中的对象和原型(二)中我们提到,用构造函数创建的对象里面,每个对象之间都是独立的,这样就会降低系统资源的利用率,解决这样问题,我们就要用到下面提到的原型对象. 一 原型对象 原型 ...

  9. JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

随机推荐

  1. react native学习1-安装,执行

    demo地址 http://www.oschina.net/p/reactnative http://my.oschina.net/luyongfugx/blog/394427#OSC_h1_1 翻译 ...

  2. 在ecshop商品详情页显示供货商

    好久没写文章了,隐约记得前几天有人问到这个问题:[如何在ecshop商品详情页面显示该商品的供货商?] 今天有时间整理下,分享给大家. 注:以下修改适用于ecshop2.7.2,其他版本未做测试. 1 ...

  3. CentOS使用ufw的方法

    ufwはファイアウォールの管理ツールで.Ubuntuで標準的に使われています.ufw allow 80/tcp のような簡単なコマンドでポートを開け閉めできます. CentOS用のパッケージは用意され ...

  4. 【WPF】布局控件总结

    <Canvas>:画布,默认不会自动裁减超出内容,即溢出的内容会显示在Canvas外面,这是因为默认 ClipToBounds="False":可设置ClipToBou ...

  5. Listview 加载更多

    JQM Listview 加载更多 demo - Warren的个人主页 JQM Listview 加载更多 Demo 测试数据1 测试数据2 测试数据3 测试数据4 显示更多 Page Footer ...

  6. 【bzoj】1026: [SCOI2009]windy数

    1026: [SCOI2009]windy数 Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间 ...

  7. android 布局权重问题(转载)

    //权重和父容器orientation有关 horizontal 指水平方向权重  android:layout_width vertical  指垂直方向权重   android:layout_he ...

  8. 前后端差异更小了——浅谈ES(ECMAScript)6

    2015年6月,ES6正式发布.至今一年多的时间内,各个浏览器也对支持ES6做出了很大的改善,所以同学们无需顾忌你写代码的浏览器不认识~ 这么久的东西一定早有大神剖析过,今天我们以一个后端菜鸟的视角重 ...

  9. 将UIImage保存到iOS照片库和对应程序沙盒中-b

    1.保存到iOS照片库需要引入QuartzCore.framework框架,具体代码如下:.h文件#import <QuartzCore/QuartzCore.h>UIImageView ...

  10. zigbee智能家居基础扫盲

    zigbee Zigbee是基于IEEE802.15.4标准的低功耗个域网协议.根据这个协议规定的技术是一种短距离.低功耗的无线通信技术.这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和&qu ...