slice可操作数组和字符串,但substring和substr只能操作字符串,splice只能操作数组
slice:v. 切,割
splice:v. 绞接
------------------------------------------------------------------------------------------------
slice:
slice( start , stop)表示截取从下标start(包括start元素)到下标stop(不包括stop元素)的之间的元素(下标从0开始算),并返回新数组/新字符串,并不修改原数组/原字符串。
let str = "012345" //数组和字符串一样就不举例了
str.slice(1,3) //"12"
str.slice(1,-1) //"1234",-1表示最后第一个,-2表示最后第二个
str.slice(-1,2) //""
str.slice(1) //"12345"splice:
splice( start, length, arg1,arg2...)表示从下标start处截取掉 length长度(包含start元素)的元素后,在 start处为原数组添加arg1,arg2...,并返回被截取掉的数组,splice会直接修改原数组
let arr = [0,1,2,3,4,5]
let newArr = arr.splice(1,4,8,8,8)
console.log(newArr) //[1, 2, 3, 4]
console.log(arr) //[0, 8, 8, 8, 5]
substring:
substring(start , stop)表示返回从start(包含start元素)开始到stop(不包含stop元素)处之间的新字符串,其长度为stop减 start。不修改原字符串
let str = "012345"
str.substring(1,3) //"12"
str.substring(3,1) //"12",stop>start会先交换这两个参数
str.substring(1,-3) //"0",start,stop为负数的话会把负数转成0
str.substring(-1,3) //"012"
str.substring(1,1) //"" ,start===stop返回空字符串
str.substring(-1,0) //""
substr:
substr(start , length)表示返回从 start开始(包含start)包含 length长度的新字符串,且不修改原字符串
let str = "012345"
str.substr(2) //"2345"
str.substr(2,3) //"234"
str.substr(-1,3) //"5",start为负数时,start = str.length + start
str.substr(-5,3) //"123"
str.substr(1,0) //"",stop为0或负数时,返回空字符串
str.substr(1,-1)