Next lesson playing in 5 seconds

Cancel
  • Overview
  • Transcript

2.5 Operator Precedence

Not all operators are created equal! In this lesson we'll see the order in which operators are evaluated when more than one type of operator is used in an expression.

1.Introduction
2 lessons, 07:42

1.1
Introduction
02:12

1.2
Setup
05:30

2.Language Fundamentals
8 lessons, 1:00:53

2.1
Variables
06:33

2.2
Data Types
11:28

2.3
Arithmetic, Assignment, and Comparison Operators
10:24

2.4
Unary, Logical, Comma, and Spread Operators
09:02

2.5
Operator Precedence
03:50

2.6
Reserved Words
04:17

2.7
Strict Mode
04:34

2.8
Functions
10:45

3.Data Structures
5 lessons, 22:52

3.1
Arrays
04:29

3.2
Objects
04:30

3.3
Sets
04:57

3.4
Maps
04:21

3.5
Weak Maps and Weak Sets
04:35

4.Controlling Program Execution
7 lessons, 37:06

4.1
Conditionals
07:49

4.2
Switch Statements
04:41

4.3
The For Loop
06:39

4.4
The `for .. in` Loop
05:17

4.5
The `for .. of` Loop
04:02

4.6
Iterators
05:03

4.7
While Loops
03:35

5.Using JavaScript
13 lessons, 1:44:36

5.1
Working With Strings
09:32

5.2
Template Literals
05:46

5.3
Working With Numbers
06:57

5.4
Working With Arrays
12:53

5.5
Iterating and Transforming Arrays
07:33

5.6
Working With the Object Type
13:55

5.7
Object Literal Extensions
06:45

5.8
Working With Object Instances
06:45

5.9
Getters and Setters
05:00

5.10
Custom Objects
11:28

5.11
The `Math` API
04:54

5.12
Working With Dates and Times
08:10

5.13
The `Array` Constructor
04:58

6.Functions
8 lessons, 56:07

6.1
The `this` Object
06:15

6.2
Working With Functions
10:11

6.3
Scope
07:37

6.4
Arrow Functions
06:59

6.5
Generator Functions
08:13

6.6
Closures
05:00

6.7
Prototypes
06:26

6.8
Default and Rest Parameters
05:26

7.Miscellaneous
6 lessons, 52:39

7.1
Destructuring Assignments
08:09

7.2
AJAX
08:30

7.3
Regular Expressions
10:51

7.4
More About Regular Expressions
08:38

7.5
Classes
06:48

7.6
ES Modules
09:43

8.Working With the DOM
6 lessons, 37:39

8.1
Selecting HTML Elements
05:02

8.2
Manipulating HTML Elements
07:40

8.3
DOM Traversal
05:25

8.4
Adding and Removing Elements
04:45

8.5
Creating Elements and Other Nodes
04:39

8.6
DOM Events
10:08

9.Web APIs
4 lessons, 17:41

9.1
The Selector API
03:03

9.2
Geolocation
05:29

9.3
Web Storage
05:24

9.4
Web Workers
03:45

10.Asynchronous JavaScript
5 lessons, 26:23

10.1
Promises
09:52

10.2
Promise Chaining
05:11

10.3
The async Keyword
03:21

10.4
The await Keyword
04:04

10.5
More About async and await
03:55

11.Conclusion
1 lesson, 00:43

11.1
Conclusion
00:43


2.5 Operator Precedence

Hi, Folks. In this lesson, we're going to look at one more aspect of operators, and that is something called operator precedence. Which just means the order in which operators are evaluated when there are multiple operators in the same expression. So let's say that we want to perform the following calculation We might think that we're adding 1 to 4, which gives 5, and then multiplying it by 2 to give 10, right? Wrong, the multiplication operator has a higher precedence than the addition operator, and so this is evaluated first. The calculation that we actually perform is 4 multiplied by 2 + 1, which gives 9. If we wanted to perform the calculation we thought that we were performing, we could wrap the first part in parentheses. Parenthesis, which are also known as the grouping operator, have the highest precedence of any other operator. So any part of a calculation enclosed within parentheses will automatically be evaluated first. If we use two operators of equal precedence, these are usually evaluated left to right. Sometimes however, operators of equal precedence are evaluated from right to left. The order in which operators of the same precedence are evaluated is known as operator associativity. Out of the operators that we've looked at so far following parentheses, the highest weighted operators are the post fix, increment and decrement operators, followed by not and the unary operators, these are all evaluated from right to left. Following this are the arithmetic operators, which are evaluated in the order multiplication, division, modulus, addition, and lastly subtraction. Next in terms of precedence are the comparison operators, these are all evaluated from left to right. And following this are the logical operators and all the assignment operator, the spread operator, and last of all the comma operator, which has the lowest precedence out of all the available operators. These are all evaluated right to left except for the comma operator, which is left to right associative. These rules are fairly complex and sometimes hard to remember, especially when you're just beginning with JavaScript. For now, I wouldn't worry about them too much. But at some point when you're more comfortable with JavaScript, I'd recommend that you look at the developer documentation on precedence and associativity up on the Mozilla Developer Network. So in this lesson, we learned all about operator precedence and associativity in JavaScripts focusing on the operators that we've covered in the course. In the next lesson, we're going to take a quick look at reserved words and identify names. Thanks for watching.

Back to the top