面试中不要在字符串截取方法上”萎了”

作者 : 开心源码 本文共1640个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共267人阅读

字符串是一种包装对象类型,只需引用了其方法或者属性,JavaScript就会将字符串值val通过调用new String(val)的方法转换城对象,那么这个对象继承了字符串的方法,一旦方法使用结束之后,这个新创立的对象就会被销毁;

一 slice 方法

  • str.slice(strat, end);
    起始下标 <= 截取的范围 < 结束下标
    包括起始下标对应的字符,but不包括
    结束下标;
1. 当只传一个参数的时候:默认为start
var str = 'hello world'; str.slice(2);  // llo world

截取的字符串为:start <= 截取范围 < str.length

   当参数是负数的时候
var str = 'hello world'; str.slice(-2);  // ld

结果为:反向下标截取
反向的下标 <= 截取范围 < str.length
当反向下标的绝对值大于或者等于字符串长度,则会置为0

 2. 当传两个参数的时候
    var str = 'hello world';     str.slice(2,7);  // llo w

截取的字符串为:start <= 截取范围 < end

      当参数是负数的时候
var str = 'hello world'; str.slice(-5,9);  // wor

截取从反向下标到设置的结束下标的位置,假如设置的结束下标的位置在开始下标的前面,会截取出空

var str = 'hello world'; str.slice(-3,5);  // 

二 substring方法

  • str.substring(start, end);
    起始下标 <= 截取的范围 < 结束下标
    包括起始下标对应字符,but不包括结束下标;
 1.当只传一个参数的时候:默认为start
var str = 'hello world'; str.substring(2);  // llo world

截取的字符串为: start<= 截取范围 < str.length

当参数为负数时
// 例子:var str = 'hello world'; str.substring(-2);  // hello world

负数的起始值置0

2.当传两个参数的时候
var str = 'hello world'; str.substring(2,7);  // llo wvar str = 'hello world'; str.substring(2,-5);  // he

当结束下标为负数则置为0,而后与起始下标互换位置,起始下标正数摇身一变成为了结束下标,截取的方向仍然从左往右;
截取的字符串为: start <= 截取范围 < end

三 substr 方法

  • str.substr(start, end);
    起始下标 <= 截取的范围 <= 自己设置截取的长度
    substr方法更直接(直接定义长度);
 1.当只传一个参数的时候:默认为start
var str = 'hello world'; console.log(str.substr(2));  // llo worldvar str = 'hello world'; console.log(str.substr(-2));  // ld

和前面一样,从反向下标开始截取到字符串结尾
截取的字符串为: start <= 截取范围 < str.length

2.当传两个参数的时候
var str = 'hello world'; console.log(str.substr(2,3));  // llovar str = 'hello world'; console.log(str.substr(-2,5));  // ldconsole.log(str.substr(-9,5));  // llo w

截取的字符串为: start <= 截取范围 <= 自己设置截取的长度
第二个参数是要截取的长度,所以不可以是负数;
当截取的长度设置为0或者者是负数的时候则返回空字符串;

总结:
  1. Slice
    a) 注意截取顺序: 从左至右
    b) 结束下标出现在起始下标左侧则返回空字符串
  2. Substring
    a) 负数下标会置零,
    b) start为正数,end为负数,end置零后会与start互换位置
  3. Substr
    a) 长度不能为负数
    b) Start可为负数,可参考slice方法start为负数

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 面试中不要在字符串截取方法上”萎了”

发表回复