substring substr和slice

substring

string方法

str.substring [indexStart, indexEnd)

返回一个新的string,从indexStart开始,到indexEnd结尾,不包含indexEnd

几种情况

  • 不传indexEnd,默认从start到string结尾
  • indexStart === indexEnd,返回空字符串
  • indexStart > indexEnd,交换二者,str.substring [indexEnd, indexStart)
  • > string.length , 默认重置为length,<0和NaN的会重置于0
//巧妙使用length
var string = 'STRING';
//最后4个字符
.substring(anyString.length - 4);

substr

string方法

str.substr(start[, length]),第二个参数为length

返回一个新字符串

  • 只有start参数,默认取到结尾
  • start为负数时,取后start位
  • length是负数时,取值0;undefined取值length
  • NaN被视为0
var aString = 'Mozilla';

console.log(aString.substr(1, 0));   // ''
console.log(aString.substr(-1, 1));  // 'a'
console.log(aString.substr(1, -1));  // ''
console.log(aString.substr(-3));     // 'lla'
console.log(aString.substr(1));      // 'ozilla'
console.log(aString.substr(-20, 2)); // 'Mo'
console.log(aString.substr(20, 2));  // ''

slice

Array方法

arr.slice[begin, end)

浅拷贝到一个新数组,原始数组不会被修改

  • begin是负数,从末尾取值
  • begin是undefined,默认为0
  • begin > end 返回[]
  • end 不包含在内
  • end可以为负数,取最后end位
  • end不传入,或者 > length, 默认为length

注意:slice是浅拷贝,所以如果元素是一个对象时,拷贝后的元素还是和原数组指向同一个地址,所以改变拷贝元素会影响原来的元素;其他基本类型的元素拷贝不受影响。

From mdn….

猜你喜欢

转载自blog.csdn.net/jplyue/article/details/82286111