Diferença Entre Slice E Splice - Javascript

Você conhece a diferença entre o método slice e o método splice, do Javascript?
Apesar de serem bem semelhantes, há umas diferenças!
Olha só:

SliceSplice
Não modifica o array original (imutável)Modifica o array original (mutável)
Retorna um subconjunto do array originalRetorna os itens deletados do array
Usado para escolher os elementos do arrayÉ usado para inserir ou deletar elementos do array

Slice

Ele seleciona os elementos começando no argumento inicial fornecido e termina no argumento final (opcional) fornecido sem incluir o último elemento.
Se você omitir o segundo argumento, ele seleciona até o final.

Alguns dos exemplos deste método são:

1
2
3
4
let arrayIntegers = [1, 2, 3, 4, 5];
let arrayIntegers1 = arrayIntegers.slice(0,2); // retorna [1,2]
let arrayIntegers2 = arrayIntegers.slice(2,3); // retorna [3]
let arrayIntegers3 = arrayIntegers.slice(4); // retorna [5]

Splice

O método splice () é usado para adicionar ou remover itens de um array e, em seguida, retornar o item removido.
O primeiro argumento especifica a posição da matriz para inserção ou exclusão, enquanto o segundo argumento da opção indica o número de elementos a serem excluídos.
Cada argumento adicional é adicionado ao array.

Alguns dos exemplos deste método são:

1
2
3
4
5
6
7
let arrayIntegersOriginal1 = [1, 2, 3, 4, 5];
let arrayIntegersOriginal2 = [1, 2, 3, 4, 5];
let arrayIntegersOriginal3 = [1, 2, 3, 4, 5];

let arrayIntegers1 = arrayIntegersOriginal1.splice(0,2); // retorna [1, 2]; original array: [3, 4, 5]
let arrayIntegers2 = arrayIntegersOriginal2.splice(3); // retorna [4, 5]; original array: [1, 2, 3]
let arrayIntegers3 = arrayIntegersOriginal3.splice(3, 1, "a", "b", "c"); // retorna [4]; original array: [1, 2, 3, "a", "b", "c", 5]