Basically, the slice() operation clones the array and returns the reference to the new array. Also note that:
For references, strings and numbers (and not the actual object), slice copies object references into the new array. Both the original and new array refer to the same object. If a referenced object changes, the changes are visible to both the new and original arrays.
Primitives such as strings and numbers are immutable so changes to the string or number are impossible.
Three types of elements
Elements can be: literal values, literal structures, or prototypes.
From these elements we can create three types of arrays.
This copys the array from the starting position 0 through the end of the array.
An alternative to slice is concat, which can be used in 2 ways. The first of these is perhaps more readable as the intended behaviour is very clear: