slice()

slice(start, end): 数组,字符串都存在此方法
截取从下标start 到下标end的之间的元素,含头不含尾,返回截取的部分

  • 如果 start比end大(不会互换),或start与stop相等,则截取的为空
  • 需要特别注意的是,如果 start或者stop为负数,那么负数的选项从数组尾部开始算起的位置,最后一个数字为-1,倒数第二个数字为-2,依次类推。

*不会改变原字符串或者数组

  1. var str = 'hollow word';
  2. var strr = str.slice(1, 3);
  3. console.log(str); // hollow word
  4. console.log(strr); // ol
  5. var arr = [1, 2, 3, 4, 5];
  6. var arrr = arr.slice(1, 4);
  7. console.log(arr); // [1, 2, 3, 4, 5]
  8. console.log(arrr); // [2, 3, 4]
  9. var str = "0123456789";
  10. arr = [0,1,2,3,4,5,6,7,8,9];
  11. console.log(str.slice(3,3))//""
  12. console.log(arr.slice(3,3))//[]
  13. console.log(str.slice(6,5))//""
  14. console.log(arr.slice(6,5))//[]
  15. console.log(str.slice(6,-1))//"678"
  16. console.log(str.slice(-6,-1))//"45678"
  17. console.log(str.slice(-6,8))//"4567"

splice()

splice(start,length,items) : 数组方法
表示从下标start处截取length长度(与substr有点像)的元素后,在start处为原数组添加items,并返回被截取的新数组,splice会直接修改原数组

  • start和length为必填项,items为选填项,如果length为0或者负数,则返回空数组(这里与substr相似)
  • 如果start为负数,则原理和slice负数从右往左截取,最后一位数字为-1,倒数第二位为-2,依次类推

*会改变原数组

  1. var arr = [0,1,2,3,4,5,6,7,8,9];
  2. console.log(arr.splice(1,3,2,3,4))//[1,2,3]
  3. console.log(arr);//[0,2,3,4,4,5,6,7,8,9] 原数组被截取走了1,2,3,并加入了2,3,4
  4. var arr = [0,1,2,3,4,5,6,7,8,9];
  5. console.log(arr.splice(1,0,2,3,4))//[]
  6. console.log(arr);//[0,2,3,4,1,2,3,4,5,6,7,8,9] 直接在原数组下标0处并加入了2,3,4
  7. var arr = [0,1,2,3,4,5,6,7,8,9];
  8. console.log(arr.splice(1,-9,2,3,4))//[]
  9. console.log(arr);//[0,2,3,4,1,2,3,4,5,6,7,8,9] 直接在原数组下标0处并加入了2,3,4
  10. var arr = [0,1,2,3,4,5,6,7,8,9];
  11. console.log(arr.splice(-1,1,2,3,4))//[9]
  12. console.log(arr);//[0,1,2,3,4,5,6,7,8,2,3,4] 从右往左截取1位,也就是9,并加入2,3,4

substring()

substring(start,stop) 字符串方法
提取字符串中介于两个指定下标之间的字符,含头不含尾。

  • 如果 start比stop大,那么方法在执行前会先交换这两个参数。
  • 如果 start与stop相等,那么会返回一个空的字符串。
  • 如果 start或stop为负数,那么方法在执行前会先将负数变为0。

*不会改变原字符串

  1. var str = 'hollow word';
  2. var strr = str.substring(1, 4);
  3. console.log(str); // hollow word
  4. console.log(strr); // oll
  5. var str = "0123456789";
  6. console.log(str.substring(8,4))//"4567"
  7. console.log(str.substring(-2,6))//"012345"
  8. console.log(str.substring(2,-6))//"01"
  9. console.log(str.substring(-2,-6))//""

substr()

substr(start,length) 字符串方法
表示返回从start开始包含length长度的新字符串
包含start,不修改原字符串,返回提取的部分
与substring相比,第二个参数由代表结束的下标stop变成了规定新字符串长度的length

  • 如果start为负数,那么从字符串尾部开始算起始位置,start=str.length+start。length方向不变。
  • 如果length为负数或者0,那么返回空字符串

*不会改变原字符串

  1. var str = 'hollow word';
  2. var strr = str.substring(0, 3);
  3. console.log(str); // hollow word
  4. console.log(strr); // hol
  5. var str = "0123456789";
  6. console.log(str.substr(-1))//"9"
  7. console.log(str.substr(-6,3))//"456"
  8. console.log(str.substr(1,0))//""
  9. console.log(str.substr(-1,-1))//""
  10. console.log(str.substr(-1,0))//""

substring和substr都是对字符串进行截取操作
splice()只能操作数组
slice()可操作数组和字符串

join()

将数组作为字符串返回。元素将由指定的分隔符分隔,默认分隔符是逗号 (,)。

*不会改变原数组

  1. const fruits = ["Banana", "Orange", "Apple", "Mango"];
  2. console.log(fruits.join('/'))// 输出:Banana/Orange/Apple/Mango

split()

split(separator, limit) :把一个字符串按照指定字符分割成字符串数组,字符串方法
separator 如果不传,那么每个字符都会被分割
limit参数可指定返回的数组的最大长度。返回的子串不会多于这个参数指定的数组。不设置该参数,整个字符串都会被分割,不考虑它的长度。

*不会改变原字符串

  1. var str1 = 'h-o-l-l-o-w';
  2. var strr1 = str1.split('-');
  3. console.log(str1); // 'h-o-l-l-o-w'
  4. console.log(strr1); // ['h', 'o', 'l', 'l', 'o', 'w']
  5. var str="How are you doing today"
  6. console.log(str.split(" ",3));// 输出: ['How', 'are', 'you']
  7. console.log(str);//How are you doing today

unshift()

将新项添加到数组的开头,并返回新的长度。
如需在数组末尾添加新项,请使用 push() 方法。

*会改变原数组

  1. var fruits = ["Banana", "Orange", "Apple", "Mango"];
  2. fruits.unshift("Lemon","Pineapple");// 输出: 6
  3. console.log(fruits);// ['Lemon', 'Pineapple', 'Banana', 'Orange', 'Apple', 'Mango']