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….