- 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.Introduction2 lessons, 07:42
1.1Introduction02:12
1.2Setup05:30
2.Language Fundamentals8 lessons, 1:00:53
2.1Variables06:33
2.2Data Types11:28
2.3Arithmetic, Assignment, and Comparison Operators10:24
2.4Unary, Logical, Comma, and Spread Operators09:02
2.5Operator Precedence03:50
2.6Reserved Words04:17
2.7Strict Mode04:34
2.8Functions10:45
3.Data Structures5 lessons, 22:52
3.1Arrays04:29
3.2Objects04:30
3.3Sets04:57
3.4Maps04:21
3.5Weak Maps and Weak Sets04:35
4.Controlling Program Execution7 lessons, 37:06
4.1Conditionals07:49
4.2Switch Statements04:41
4.3The For Loop06:39
4.4The `for .. in` Loop05:17
4.5The `for .. of` Loop04:02
4.6Iterators05:03
4.7While Loops03:35
5.Using JavaScript13 lessons, 1:44:36
5.1Working With Strings09:32
5.2Template Literals05:46
5.3Working With Numbers06:57
5.4Working With Arrays12:53
5.5Iterating and Transforming Arrays07:33
5.6Working With the Object Type13:55
5.7Object Literal Extensions06:45
5.8Working With Object Instances06:45
5.9Getters and Setters05:00
5.10Custom Objects11:28
5.11The `Math` API04:54
5.12Working With Dates and Times08:10
5.13The `Array` Constructor04:58
6.Functions8 lessons, 56:07
6.1The `this` Object06:15
6.2Working With Functions10:11
6.3Scope07:37
6.4Arrow Functions06:59
6.5Generator Functions08:13
6.6Closures05:00
6.7Prototypes06:26
6.8Default and Rest Parameters05:26
7.Miscellaneous6 lessons, 52:39
7.1Destructuring Assignments08:09
7.2AJAX08:30
7.3Regular Expressions10:51
7.4More About Regular Expressions08:38
7.5Classes06:48
7.6ES Modules09:43
8.Working With the DOM6 lessons, 37:39
8.1Selecting HTML Elements05:02
8.2Manipulating HTML Elements07:40
8.3DOM Traversal05:25
8.4Adding and Removing Elements04:45
8.5Creating Elements and Other Nodes04:39
8.6DOM Events10:08
9.Web APIs4 lessons, 17:41
9.1The Selector API03:03
9.2Geolocation05:29
9.3Web Storage05:24
9.4Web Workers03:45
10.Asynchronous JavaScript5 lessons, 26:23
10.1Promises09:52
10.2Promise Chaining05:11
10.3The async Keyword03:21
10.4The await Keyword04:04
10.5More About async and await03:55
11.Conclusion1 lesson, 00:43
11.1Conclusion00: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.