JavaScript
Strings
JavaScript
strings are used for storing and manipulating text.
JavaScript
Strings
A JavaScript
string simply stores a series of characters like "John Doe".
A string can
be any text inside quotes. You can use single or double quotes:
Example
var
carname = "Volvo XC60";
var
carname = 'Volvo XC60';
»
You can use
quotes inside a string, as long as they don't match the quotes surrounding the
string:
Example
var
answer = "It's alright";
var
answer = "He is called 'Johnny'";
var
answer = 'He is called "Johnny"';
»
String
Length
The length
of a string is found in the built in property length:
Example
var
txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var
sln = txt.length;
»
Special
Characters
Because
strings must be written within quotes, JavaScript will misunderstand this
string:
var y =
"We are the so-called "Vikings" from the north."
The string
will be chopped to "We are the so-called ".
The solution
to avoid this problem, is to use the \ escape character.
The
backslash escape character turns special characters into string characters:
Example
var
x = 'It\'s alright';
var
y = "We are the so-called \"Vikings\" from the north."
»
The escape
character (\) can also be used to insert other special characters in a string.
These are
commonly used special characters that can be inserted in a text with the
backslash sign:
Code Outputs
\' single quote
\" double quote
\\ backslash
Five other
escape characters are valid in JavaScript:
Code Outputs
\b Backspace
\r Carriage Return
\f Form Feed
\t Horizontal Tabulator
\v Vertical Tabulator
The escape
characters above were originally designed to control typewriters, teletypes,
and fax machines. They do not make any sense in HTML.
Breaking
Long Code Lines
For best
readability, programmers often like to avoid code lines longer than 80
characters.
If a
JavaScript statement does not fit on one line, the best place to break it is
after an operator:
Example
document.getElementById("demo").innerHTML
=
"Hello
Dolly.";
»
You can also
break up a code line within a text string with a single backslash:
Example
document.getElementById("demo").innerHTML
= "Hello \
Dolly!";
»
The \ method
is not the preferred method. It might not have universal support.
Some
browsers do not allow spaces behind the \ character.
A safer way
to break up a string, is to use string addition:
Example
document.getElementById("demo").innerHTML
= "Hello" +
"Dolly!";
»
You cannot
break up a code line with a backslash:
Example
document.getElementById("demo").innerHTML
= \
"Hello
Dolly!";
»
Strings Can
be Objects
Normally,
JavaScript strings are primitive values, created from literals: var firstName =
"John"
But strings
can also be defined as objects with the keyword new: var firstName = new
String("John")
Example
var
x = "John";
var
y = new String("John");
// typeof x
will return string
// typeof y
will return object
»
Don't create
strings as objects. It slows down execution speed.
The new
keyword complicates the code. This can produce some unexpected results:
When using
the == operator, equal strings are equal:
Example
var
x = "John";
var
y = new String("John");
// (x == y)
is true because x and y have equal values
»
When using
the === operator, equal strings are not equal, because the === operator expects
equality in both type and value.
Example
var
x = "John";
var
y = new String("John");
// (x === y)
is false because x and y have different types (string and object)
»
Or even
worse. Objects cannot be compared:
Example
var
x = new String("John");
var
y = new String("John");
// (x == y)
is false because x and y are different objects
»
Example
var
x = new String("John");
var
y = new String("John");
// (x === y)
is false because x and y are different objects
»
Note the
difference between (x==y) and (x===y).
Comparing
two JavaScript objects will always return false.
0 comments: