String objects can be created implicitly using string literals. String objects created in this fashion (referred to as "primitive" strings) are treated differently from String objects created using the new operator. Although you can read properties and call methods on primitive strings, you cannot create new properties or add methods to them.
Escape sequences can be used in string literals to represent special characters that cannot be used directly in a string, such as the newline character or Unicode characters. At the time a script is compiled, each escape sequence in a string literal is converted into the characters it represents. For additional information, see String Data.
JScript also defines a String data type, which provides different properties and methods from the String object. You cannot create properties or add methods to variables of the String data type, while you can for instances of the String object.
The String object interoperates with String data type (which is the same as the System.String data type). This means that a String object can call the methods and properties of the String data type, and a String data type can call the methods and properties of the String object. For more information, see String. Furthermore, String objects are accepted by functions that take String data types, and vice versa.
The data type of a String object is Object, not String.