String.prototype.slice()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Theslice() method ofString values extracts a section of this string andreturns it as a new string, without modifying the original string.
In this article
Try it
const str = "The quick brown fox jumps over the lazy dog.";console.log(str.slice(31));// Expected output: "the lazy dog."console.log(str.slice(4, 19));// Expected output: "quick brown fox"console.log(str.slice(-4));// Expected output: "dog."console.log(str.slice(-9, -5));// Expected output: "lazy"Syntax
slice(indexStart)slice(indexStart, indexEnd)Parameters
indexStartThe index of the first character to include in the returned substring.
indexEndOptionalThe index of the first character to exclude from the returned substring.
Return value
A new string containing the extracted section of the string.
Description
slice() extracts the text from one string and returns a new string.
slice() extracts up to but not includingindexEnd. For example,str.slice(4, 8) extracts the fifth character through the eighth character (characters indexed4,5,6, and7):
indexStart indexEnd ↓ ↓| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 || T | h | e | | m | i | r | r | o | r | m i r r _______________ ↑ Result
- If
indexStart >= str.length, an empty string is returned. - If
indexStart < 0, the index is counted from the end of the string. More formally, in this case, the substring starts atmax(indexStart + str.length, 0). - If
indexStartis omitted,undefined, or cannot beconverted to a number, it's treated as0. - If
indexEndis omitted orundefined, or ifindexEnd >= str.length,slice()extracts to the end of the string. - If
indexEnd < 0, the index is counted from the end of the string. More formally, in this case, the substring ends atmax(indexEnd + str.length, 0). - If
indexEnd <= indexStartafter normalizing negative values (i.e.,indexEndrepresents a character that's beforeindexStart), an empty string is returned.
Examples
>Using slice() to create a new string
The following example usesslice() to create a new string.
const str1 = "The morning is upon us."; // The length of str1 is 23.const str2 = str1.slice(1, 8);const str3 = str1.slice(4, -2);const str4 = str1.slice(12);const str5 = str1.slice(30);console.log(str2); // he mornconsole.log(str3); // morning is upon uconsole.log(str4); // is upon us.console.log(str5); // ""Using slice() with negative indexes
The following example usesslice() with negative indexes.
const str = "The morning is upon us.";str.slice(-3); // 'us.'str.slice(-3, -1); // 'us'str.slice(0, -1); // 'The morning is upon us'str.slice(4, -1); // 'morning is upon us'This example counts backwards from the end of the string by11 to find thestart index and forwards from the start of the string by16 to find the endindex.
console.log(str.slice(-11, 16)); // "is u"Here it counts forwards from the start by11 to find the start index andbackwards from the end by7 to find the end index.
console.log(str.slice(11, -7)); // " is u"These arguments count backwards from the end by5 to find the start indexand backwards from the end by1 to find the end index.
console.log(str.slice(-5, -1)); // "n us"Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.slice> |