JavaScript 中 substr 和 slice 什么区别?


        var str="my name is yangxiaoluo";

        console.log(  str.substr(1, 10)   );

        console.log(  str.slice(1, 10) );

我怎么试了试都一样?

阅读 3.4k
5 个回答
arrayObject.slice(start,end)
stringObject.substr(start,length)
  • 首先,slice()理论上针对数组,substr()是针对字符串

  • 其次,slice()方法参数为start,end,意为返回一个新的数组,包含从 start 到 end (不包括end元素)的 arrayObject 中的元素;

  • 再次,substr()方法参数为start,length,意为返回一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。

  • 最后,其他详细解释参照slice()方法,substr()方法

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
slice() 方法可从已有的数组中返回选定的元素。

var str="my name is yangxiaoluo";
console.log(  str.substr(1, 10).length   ); //10
console.log(  str.slice(1, 10).length ); //9

不是一样的,你的运行结果正好有空格,所以看上去是一样的
你看下你结果的字符串的长度就知道是不一样的了

substr是截取对应的字符,也就是改变了原字符串的内容,而slice是复制对应的字符,并不修改原字符串的内容

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题