What is slice()?
slice() is a method used to copy a portion of an array or string without changing the original.
Think of it like cutting a piece out of a cake — you get the piece, but the original cake stays the same.
Syntax
array.slice(start, end)
string.slice(start, end)
- 
start→ The index where the extraction begins (inclusive).- 
If omitted → starts from 0.
- 
If negative → counts from the end. 
 
- 
- 
end→ The index where extraction stops (exclusive).- 
If omitted → goes till the end. 
- 
If negative → counts from the end. 
 
- 
Key Points
- 
Does not modify the original array/string. 
- 
Returns a new array (or string in case of strings). 
- 
Works with negative indexes. 
Array Examples
1) Basic Usage
const fruits = ["apple", "banana", "cherry", "date"];
const sliced = fruits.slice(1, 3);
console.log(sliced);       // ["banana", "cherry"]
console.log(fruits);       // ["apple", "banana", "cherry", "date"] (unchanged)
Here:
- 
Starts at index 1→"banana".
- 
Stops before index 3→ excludes"date".
2) Omitting the end
const colors = ["red", "green", "blue", "yellow"];
console.log(colors.slice(2)); // ["blue", "yellow"]
3) Using Negative Indexes
const numbers = [1, 2, 3, 4, 5];
console.log(numbers.slice(-3));     // [3, 4, 5]
console.log(numbers.slice(1, -1));  // [2, 3, 4]
- 
-3→ starts from the 3rd last element.
- 
end = -1→ stops before the last element.
4) Copying the Whole Array
const arr = [10, 20, 30];
const copy = arr.slice();
console.log(copy); // [10, 20, 30]
console.log(copy === arr); // false (different array in memory)
String Examples
const text = "JavaScript";
console.log(text.slice(0, 4));  // "Java"
console.log(text.slice(4));     // "Script"
console.log(text.slice(-6));    // "Script"
Difference between slice() and splice()
| Feature | slice() | splice() | 
|---|---|---|
| Changes original? | ❌ No | ✅ Yes | 
| Return value | New array with extracted items | Removed items (also modifies the original array) | 
| Usage | Copy part of array/string | Add/remove elements in array | 
Example:
const nums = [1, 2, 3, 4];
nums.slice(1, 3); // [2, 3]  (nums unchanged)
nums.splice(1, 2); // removes 2 elements starting at index 1 → nums becomes [1, 4]
Quick Cheat Sheet
- 
Inclusive start index, exclusive end index. 
- 
Works with arrays and strings. 
- 
Negative index → counts from end. 
- 
Good for copying and non-destructive slicing. 
.png)
