数组切片,检索方法对比

substr,substring,slice区别

一,作用

  切片,从原字符串中取新字符串的方法,通俗点就是用来截取字符串。

二,相同点

  都接收一到二个参数。

  当接收一个参数是,都表示截取从当前下标,截取字符串,知道字符串的最后一个字符。

var str = 'hello world';
console.log(str.slice(
3),str.substr(3),str.substring(3));

//'lo world','lo world','lo world'

三,不同点

  1,当接收二个参数时,第一个参数都表示当前的下标,slice和substring的第二个参数表示截取的结束下标,而substr表示的是需要截取的字符串的位数。

console.log(str.slice(3,5),str.substr(3,5),str.substring(3,5));
 //'lo','lo wo','lo'

  2,当传入的是负数时

    slice()会把当前的负值加上字符串的长度。如slice(-3),相当于slice(8)。

    substring()会把所有的负值转化为零。

    substr()第一个负值负值会把当前的负值加上字符串的长度,第二个负值会转化为零(截取的个数不能为负)。

indexOf与search的区别

  检索可返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到返回-1。

  search()的参数可以是正则表达式,而indexOf()的参数只是普通的字符串。indexOf()是比search()更加底层的方法。

  如果只是兑一个具体字符串来茶渣检索,那么使用indexOf()的系统资源消耗更小,效率更高;如果查找具有某些特征的字符串(例如查找以a开头,后面是数字的字符串),那么indexOf()就无能为力,必须要使用正则表达式和search()方法了。

  大多是时候用indexOf()不是为了真的想知道子字符串的位置,而是想知道长字符串中有没有包含这个子字符串。若果返回索引为-1,那么说明没有,反之则有。

every和some的区别

  1. every是所有函数的每个回调都返回true的时候才会返回true,当遇到false的时候终止执行,返回false。
  2. some函数是存在有一个函数返回true的时候终止执行并返回true,否则返回false。
// every
var arr = [1,6,8,-2,-5,7,-4]
var isPositive = arr.every(function(value){
    return value > 0;
})
console.log(isPositive) // false
//some
var arr = [1,6,8,-2,-5,7,-4]
var isPositive = arr.some(function(value){
    return value > 0;
})
console.log(isPositive) // true
原文地址:https://www.cnblogs.com/ll15888/p/11611803.html