Метод slice в Javascript

Не могу понять как работает этот метод, он меняет элементы или добавляет? И почему туда передается так много элементов? В общем у меня каша образовалась какая то в голове касательно данного метода, был бы очень благодарен если бы кто то прояснил для меня механизмы работы этого метода, с примерами и по наростающим возможностям, а то их там как я понял многовато)

Этот метод не удаляет и не добавляет, он копирует участок массива в новый, и там есть много вариантов как скопировать массив, можно скопировать элементы с 1 по 2, можно скопировать с первого до конца, можно с конца копировать, насчет удалять и добавлять это вы наверное перепутали с методом splice, он обладает функционалом что вы назвали, а метод slice просто может скопировать массив, и у него есть большое количество вариантов передачи парметров для этого, вот примеры:

var array = ["Завтра", "я", "буду", "отдыхать"];

var
newArr = array.slice(1, 3); // выбираем два элемента с 1 и до 3(не включительно) - 0 [1(я) 2(буду)] 3

alert( newArr );

alert( array.slice(1) ); // берем все элементы c 1 до конца 0 [1(я) 2(буду) 3(отдыхать)]

var copy = array.slice();

alert(copy);

Метод не сложный, но посидеть и понять надо, если передаешь два параметра то он обрезает с и до (не включительно), если передаешь один параметр (который индекс), то копирует с переданного параметра(индекса) и до конца массива. Ну и если без параметров, то метод копирует полностью весь массив.