In this lesson, we're gonna talk about operator precedence and associativity, because there has to be rules about how operators create expressions, in what order that happens and how are parts of a complex expression associated. And some of this is going to be the same, perhaps, as what you learned in math classes, and some not. In JavaScript, grouping is first, so a parenthesis, for example, that expression gets evaluated first, then multiplication and division, then addition and subtraction, and then finally, in this scenario assignment, there are many more language constructs which fall under the precedence order rules, but just for our purposes here, we're just looking at more the simple math-type operators. So if we take a case like an expression here, we don't have any parentheses in there, so multiplication and division is going to happen first, and then addition and subtraction after that. So we should get 27 because we have two times eight first, and then everything else was the addition and the subtraction. Now, I can change this with grouping, just by putting, say, parentheses, around this. Now, that operation will be done first, and now I get a completely different answer there. Now, assignment is what we're gonna call left associative. In fact, this is so ingrained into languages, we maybe even take this for granted, but everything that's on the right side of an expression, when we're using the equals, the assignment operator, everything on the right side gets evaluated and then assigned to what's on the left. That just happened. If you want it to get a little fancy, we could even do this, x equals y equals 100. Now, if we do that, both variables end up with a value of 100 because of the way the expression is evaluated. Now, there is one math operator that we wanna take a look at here, that is slightly different than the rest, because exponentiation is actually right associative, in that, when there's that exponentiation operator, we're gonna raise four to the second power here. When that exists, then it takes those two. And it's gonna do that, exponentiation would fit right in here if we're looking at our precedence order, but the reason I bring this up here is because it's right associative. So if we try that one there, let's see if we can get our results onto the page here, and it's 62. So four to the second is 16, 16 times three is 48, plus the 14 gives us 62. Now, there is one other operator, and this is relatively new in JavaScript. We're gonna call it spread syntax or rest parameters. And let me give you a little example, because this may look a little bit different than you're used to. And that's what we're talking about right there, the set of three dots. So when we use that as a function argument, it gathers all the arguments, all the comma-separated arguments, and sticks them into this array. If you're familiar with C#, there's an argument called params, it's similar to that. If you've never seen C# before, don't worry, no big deal. But what happens is now, I can take and use this as an array, and when I call the function, I can just have an arbitrary number of parameters, and those are all gathered into that thing that becomes, in our case, the scores array. I have my named arguments first, in this case, who is that string? When is that date? And then everything else becomes part of that rest parameter. So I have four items there, and there's my average, I can continue to add, and I didn't put any complex error handling in here, so I'm just gonna make sure that those are still numbers, but as far as the parameter goes, I can throw as many arguments as I want in there and it will all be gathered into that array. Now, there's also another use of this operator, and we can call that spread syntax, and it shows up right here. It basically unpacks array elements where they're used. So if I have a set of letters here first and I want to combine those two arrays, this takes that entire thing without me having to go through, say, for each, for example. And you can see there, I did read out that merged set array and there's all my values. Thanks for watching. In our next lesson, we'll look at what happens to variables that don't have values and how we can differentiate them.