The JavaScript string is a primitive data type that represents textual data. For example,
let name = "John";
Create JavaScript Strings
In JavaScript, we create strings by surrounding them with quotes or backticks.
Single Quotes | 'Hello' |
Double Quotes | "Hello" |
Backticks | `Hello` |
Single quotes and double quotes are practically the same, and you can use either of the two.
Backticks are generally used when you need to insert variables or expressions into a string. This is done by wrapping variables or expressions with ${variable or expression}
. For example,
// strings example
let name1 = 'Peter';
let name2 = "Jack";
let result = `The names are ${name1} and ${name2}`;
console.log(result);
// Output: The names are Peter and Jack
Note: In JavaScript, strings enclosed by backticks ` `
are called template literals.
Access String Characters
You can access the characters in a string in two ways:
1. Using Indexes
One way is to treat strings as an array and access the character at the specified index. For example,
let message = "hello";
// use index 1 to access
// 2nd character of message
console.log(message[1]); // e
Here, the code message[1]
gives us the character at index 1 of the message string, i.e., its second character.
2. Using the charAt() Method
Another way is to supply the position of the character to the charAt()
method. For example,
let message = "hello";
// use charAt(1) to get the
// 2nd character of message
console.log(message.charAt(1)); // e
Here, the code message.charAt(1)
gives us the character at index 1 of the message string.
Features of JavaScript Strings
JavaScript strings have some interesting features. The most important of these features are:
1. JavaScript Strings are Immutable
In JavaScript, the characters of a string cannot be changed. For example,
let message = "hello";
message[0] = "H";
console.log(message); // hello
In the above example, we tried changing the first character of message using the code:
message[0] = "H";
However, this operation failed due to the immutable nature of JavaScript strings.
That being said, you can successfully assign a new value to the string variable. For example,
let message = "hello";
message = "Hello";
console.log(message); // Hello
2. JavaScript Strings are Case-Sensitive
In JavaScript., the lowercase and uppercase letters are treated as different values. For example,
let value1 = "a";
let value2 = "A"
console.log(value1 == value2); // false
As you can see, a
and A
are treated as different values.
JavaScript String Methods
Method | Description |
---|---|
charAt() | Returns the character at the specified index. |
concat() | Joins two or more strings. |
replace() | Replace a string with another string. |
split() | Converts the string to an array of strings. |
substr() | Returns a part of a string by taking the starting position and length of the substring. |
substring() | Returns a part of the string from the specified start index (inclusive) to the end index (exclusive). |
slice() | Returns a part of the string from the specified start index (inclusive) to the end index (exclusive). |
toLowerCase() | Returns the passed string in lowercase. |
toUpperCase() | Returns the passed string in uppercase. |
trim() | Removes whitespace from the strings. |
includes() | Searches for a string and returns a boolean value. |
search() | Searches for a string and returns the position of a match. |
To learn more, visit JavaScript String methods.
Example: JavaScript String Methods
let text1 = "hello";
let text2 = "world";
let text3 = " JavaScript ";
// concatenate two strings
let result1 = text1.concat(' ', text2);
console.log(result1); // hello world
// convert the text to uppercase
let result2 = text1.toUpperCase();
console.log(result2); // HELLO
// remove whitespace from the string
let result3 = text3.trim();
console.log(result3); // JavaScript
// convert the string to an array
let result4 = text1.split();
console.log(result4); // [ 'hello' ]
// slice the string
let result5= text1.slice(1, 3);
console.log(result5); // el
Output
hello world HELLO JavaScript [ 'hello' ] el
More on JavaScript Strings
To find the length of a string, you can use the built-in length property. For example,
let message = "hello";
console.log(message.length);
// Output: 5
You can write a quote inside another quote. However, the quote should not match the surrounding quotes. For example,
// valid
let message = 'My name is "Peter".';
// invalid
let message = 'My name is 'Peter'.';
You can create string objects using the new
keyword. For example,
let value1 = "hello";
let value2 = new String("hello");
console.log(value1); // hello
console.log(value2); // [String: 'hello']
console.log(typeof(value1)); // string
console.log(typeof(value2)); // object
Note: We recommend you avoid using string objects since they slow down the program.
We use the String()
function to convert various data types to strings. For example,
let value1 = 225; // number
let value2 = true; // boolean
//convert to string
let result1 = String(value1);
let result2 = String(value2);
console.log(result1); // 225
console.log(result2); // true
To learn more about string conversion, visit JavaScript Type Conversion.
In JavaScript, you use escape characters to insert characters that are difficult or impossible to represent directly in a string.
You can use the backslash escape character \
to include special characters in your string. For example,
// insert double quotes inside string
let name = "My name is \"Peter\".";
console.log(name);
Output
My name is "Peter".
In the above program, each \"
inserts a double quote inside the string without causing syntax errors.
Here are other ways that you can use escape character \
:
Code | Character |
---|---|
\" |
Double Quote |
\\ |
Backslash |
\n |
New Line |
\r |
Carriage Return |
\v |
Vertical Tab |
\t |
Horizontal Tab |
\b |
Backspace |
\f |
Form feed |
JavaScript provides multiple techniques to create multiline strings. They can be broadly classified into two types:
- Multiline in code but not in the output.
- Multiline in both code and output.
Let's explore them in greater detail:
1. Multiline in code but not in the output.
Separating a long string into multiple lines can make your code look clean. You can achieve this using the +
or the \
operators.
However, these multiline strings will be represented as a single line in the output. For example,
// use the + operator
let message1 = "This is a long message " +
"that spans across multiple lines " +
"in the code.";
// use the \ operator
let message2 = "This is a long message \
that spans across multiple lines \
in the code.";
console.log(message1);
console.log(message2);
Output
This is a long message that spans across multiple lines in the code. This is a long message that spans across multiple lines in the code.
2. Multiline in both code and output.
Use any of the following to print multiple lines using a single string variable:
- Template Literals
` `
- Newline Escape Character
\n
For example,
// use template literal
let message1 = `This is a long message
that spans across multiple lines
in the code.`;
// use escape character \n
// each \n inserts a new line into the string
let message2 = "This is a long message\nthat spans across multiple lines\nin the code.";
console.log(message1);
// print an empty line
console.log();
console.log(message2);
Output
This is a long message that spans across multiple lines in the code. This is a long message that spans across multiple lines in the code.
Also Read: