


These operators join operands either formed by higher-precedence operators or one of the basic expressions. In this section, we will introduce the following operators: However, if it's not eventually part of a bigger construct (for example, a variable declaration like const z = 3 + 4), its result will be immediately discarded - this is usually a programmer mistake because the evaluation doesn't produce any effects.Īs the examples above also illustrate, all complex expressions are joined by operators, such as = and +. This expression uses the + operator to add 3 and 4 together and produces a value, 7. The expression 3 + 4 is an example of the second type. This expression uses the = operator to assign the value seven to the variable x. The expression x = 7 is an example of the first type. There are two types of expressions: those that have side effects (such as assigning values) and those that purely evaluate. This chapter describes JavaScript's expressions and operators, including assignment, comparison, arithmetic, bitwise, logical, string, ternary and more.Īt a high level, an expression is a valid unit of code that resolves to a value. Warning: unreachable code after return statement.Warning: -file- is being assigned a //# sourceMappingURL, but already has one.TypeError: X.prototype.y called on incompatible type.TypeError: setting getter-only property "x".TypeError: Reduce of empty array with no initial value.TypeError: property "x" is non-configurable and can't be deleted.

TypeError: invalid assignment to const "x".TypeError: invalid 'instanceof' operand 'x'.TypeError: cannot use 'in' operator to search for 'x' in 'y'.TypeError: can't redefine non-configurable property "x".TypeError: can't delete non-configurable array element.TypeError: can't define property "x": "obj" is not extensible.TypeError: can't convert BigInt to number.TypeError: can't assign to property "x" on "y": not an object.TypeError: "x" is not a non-null object.Synta圎rror: Using to indicate sourceURL pragmas is deprecated.Synta圎rror: unterminated string literal.Synta圎rror: unparenthesized unary expression can't appear on the left-hand side of '**'.Synta圎rror: unlabeled break must be inside loop or switch.Synta圎rror: Unexpected '#' used outside of class body.Synta圎rror: test for equality (=) mistyped as assignment (=)?.Synta圎rror: redeclaration of formal parameter "x".Synta圎rror: missing = in const declaration.Unicode character class escape: \p after property list.Character class escape: \d, \D, \w, \W, \s, \S.Enumerability and ownership of properties.
