JavaScript Expressions and Statements
Statements and expressions are two very important terms in JavaScript. Given how frequently these two terms are used to describe JavaScript code, it is important to understand what they mean and the distinction between the two.
Expressions
Any unit of code that can be evaluated to a value is an expression. Since expressions produce values, they can appear anywhere in a program where JavaScript expects a value such as the arguments of a function invocation. As per the MDN documentation, JavaScript has the following expression categories.
Arithmetic Expressions:
Arithmetic expressions evaluate to a numeric value. Examples include the following
String Expressions:
String expressions are expressions that evaluate to a string. Examples include the following
Logical Expressions:
Expressions that evaluate to the Boolean value true or false are considered to be logical expressions. This set of expressions often involve the usage of logical operators && (AND), ||(OR) and !(NOT). Examples include
Primary Expressions:
Primary expressions refer to stand alone expressions such as literal values, certain keywords and variable values. Examples include the following
Left-hand-side Expressions:
Also known as lvalues, left-hand-side expressions are those that can appear on the left side of an assignment expression. Examples of left-hand-side expressions include the following
Now that we have covered the basics of expressions, let’s dive a bit deeper into expressions.
Assignment Expressions:
When expressions use the = operator to assign a value to a variable, it is called an assignment expression. Examples include
The = operator expects an lvalue as its left-side operand. The value of an assignment expression is the value of the right-side operand such as 55 in the above example. As a side effect, the = operator assigns the value on the right side to the value on the left side.
Expressions with side effects:
As we just saw with assignment expressions, expressions with side effects are those that result in a change or a side effect such as setting or modifying the value of a variable through the assignment operator =, function call, incrementing or decrementing the value of a variable.
Statements
A statement is an instruction to perform a specific action. Such actions include creating a variable or a function, looping through an array of elements, evaluating code based on a specific condition etc. JavaScript programs are actually a sequence of statements.
Statements in JavaScript can be classified into the following categories
Declaration Statements:
Such type of statements create variables and functions by using the var and function statements respectively. Examples include
Expression Statements:
Wherever JavaScript expects a statement, you can also write an expression. Such statements are referred to as expression statements. But the reverse does not hold. You cannot use a statement in the place of an expression.
Stand alone primary expressions such as variable values can also pass off as statements depending on the context. Examples of expression statements includes the following
Conditional Statements:
Conditional statements execute statements based on the value of an expression. Examples of conditional statements includes the if..else and switch statements.
Loops and Jumps :
Looping statements includes the following statements: while, do/while, for and for/in. Jump statements are used to make the JavaScript interpreter jump to a specific location within the program. Examples of jump statements includes break, continue, return and throw.
Function Expressions vs Function Declarations:
A function expression, particularly a named function expression, and a function declaration may look the same but their behavior is very different.
A function expression is part of a variable assignment expression and may or may not contain a name. Since this type of function appears after the assignment operator =, it is evaluated as an expression. Function expressions are typically used to assign a function to a variable. Function expressions are evaluated only when the interpreter reaches the line of code where function expressions are located.
Only function expressions can be immediately invoked. Such types of function expressions are referred to as Immediately Invoked Function Expression (IIFE).
On the other hand, function declarations are statements as they perform the action of creating a variable whose value is that of the function. Function declaration falls under the category of declaration statements. Also, function declarations are hoisted to the top of the code unlike function expressions. Function declarations must always be named and cannot be anonymous.
Last updated
Was this helpful?