loading...

JavaScript – Primary Expressions

The simplest expressions, known as primary
expressions
, are those that stand alone—they do not include any simpler
expressions. Primary expressions in JavaScript are constant or
literal values, certain language keywords, and
variable references.

Literals are constant values that are embedded directly in your
program. They look like these:

1.23         // A number literal
"hello"      // A string literal
/pattern/    // A regular expression literal

JavaScript syntax for number literals was covered in Numbers. String literals were documented in Text. The regular expression literal syntax was
introduced in Pattern Matching and will be documented in
detail in Chapter 10.

Some of JavaScript’s reserved words are primary
expressions:

true      // Evalutes to the boolean true value
false     // Evaluates to the boolean false value
null      // Evaluates to the null value
this      // Evaluates to the "current" object

We learned about true,
false, and null in Boolean Values and
null and undefined. Unlike the other keywords, this is not a constant—it evaluates to
different values in different places in the program. The this keyword is used in object-oriented
programming. Within the body of a method, this evaluates to the object on which the
method was invoked. See Invocation Expressions, Chapter 8 (especially Method Invocation), and Chapter 9 for
more on this.

Finally, the third type of primary expression is the bare
variable reference:

i             // Evaluates to the value of the variable i.
sum           // Evaluates to the value of the variable sum.
undefined     // undefined is a global variable, not a keyword like null.

When any identifier appears by itself in a program, JavaScript
assumes it is a variable and looks up its value. If no variable with
that name exists, the expression evaluates to the undefined value. In the strict mode of
ECMAScript 5, however, an attempt to evaluate a nonexistent variable
throws a ReferenceError instead.

Comments are closed.

loading...