Expressions
The simplest expressions are a literal value (such as a string or number), a
variable, a built-in value (true
, false
, null
,
undefined
, NaN
, or Infinity
), an invocation
expression preceded by new
, a refinement
expression preceded by delete
, an expression
wrapped in parentheses, an expression preceded by a prefix operator, or an
expression followed by:
An infix operator and another expression
The
?
ternary operator followed by another expression, then by:
, and then by yet another expressionAn invocation
A refinement
The ?
ternary operator takes three operands. If
the first operand is truthy, it produces the value of the second operand. But if the
first operand is falsy, it produces the value of the third operand.
The operators at the top of the operator precedence list in Table 2-1 have higher precedence. They bind the tightest. The operators at the bottom have the lowest precedence. Parentheses can be used to alter the normal precedence, so:
2 + 3 * 5 === 17 (2 + 3) * 5 === 25
Table 2-1. Operator precedence
|
Refinement and invocation |
|
Unary operators |
|
Multiplication, division, remainder |
|
Addition/concatenation, subtraction |
|
Inequality |
|
Equality |
|
Logical and |
|
Logical or |
|
Ternary |
The values ...
Get JavaScript: The Good Parts now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.