In JavaScript, a String is a text value. It can hold letters, digits, spaces, and symbols. You write a string with single quotes, double quotes, or backticks: 'Code', "ToFun", or `Hello, ${name}`.
Strings are primitives and they are immutable. Calling toUpperCase() or slice() returns a new string. The value you started with does not change. Join text with + or a template literal. "JS" + 1 becomes the string "JS1", because + concatenates when either side is text.
A String is text: letters, digits, spaces, and symbols stored as a sequence of UTF-16 code units. You write it with quotes or a template literal, for example "hello", 'hello', or `hello`.
No. Methods such as toUpperCase() and slice() return a new string. The original value stays the same. Assigning to an index, such as word[0] = "J", does not change the string.
Single and double quotes are plain text. A template literal uses backticks and can insert values with ${name}. It can also span more than one line.
length counts UTF-16 code units, not visible characters. Many emoji use a surrogate pair, so "😀".length is 2 while "Hi".length is 2 for two letters.
Practice the examples here, then open the String Methods index for slice(), includes(), trim(), and replace(), and the String Properties index for length and constructor.