Nesta lição, vamos conversar sobre precedência de operador e associatividade, porque tem que haver regras sobre como os operadores criam expressões, em que ordem isso acontece e como estão associadas as partes de uma expressão complexa. E parte disso vai ser o mesmo, talvez, como o que você aprendeu nas aulas de matemática, e alguns não. Em JavaScript, o agrupamento é primeiro, então, um parêntese, por exemplo, essa expressão é avaliada primeiro, então multiplicação e divisão, então adição e subtração, e, finalmente, nesta atribuição de cenário, existem muitas outras construções de linguagem que se enquadram nas regras de ordem de precedência, mas apenas para nossos propósitos aqui, estamos apenas examinando os operadores matemáticos simples. Então, se pegarmos um caso como uma expressão aqui, não temos parênteses aí, então multiplicação e divisão vão acontecer primeiro, e depois adição e subtração. Devemos obter 27 porque temos duas vezes oito primeiro, e então todo o resto foi a adição e a subtração. Agora, posso mudar isso com agrupamento, apenas colocando, digamos, parênteses em torno disso. Agora, essa operação será feita primeiro, e agora recebo uma resposta completamente diferente. Agora, atribuição é o que chamaremos de associativa à esquerda. Na verdade, isso está tão arraigado nas línguas, podemos até considerar isso garantido, mas tudo que está do lado direito de uma expressão, quando estamos usando igual, o operador de atribuição, tudo no lado direito é avaliado e então atribuído ao que está à esquerda. Isso simplesmente aconteceu. Se você quiser ficar um pouco sofisticado, podemos até fazer isso, x igual a y igual a 100. Agora, se fizermos isso, ambas as variáveis terminam com um valor de 100 devido à forma como a expressão é avaliada. Agora, há um operador matemático que queremos dar uma olhada aqui, que é um pouco diferente do resto, porque a exponenciação é na verdade associativa correta, nisso, quando há aquele operador de exponenciação, vamos aumentar quatro à segunda potência aqui. Quando isso existe, são necessários esses dois. E vai fazer isso, a exponenciação caberia bem aqui se estamos olhando para nossa ordem de precedência, mas a razão de eu trazer isso aqui é porque é associativo correto. Então, se tentarmos aquele lá, vamos ver se podemos colocar nossos resultados na página aqui, e é 62. Então, quatro para o segundo são 16, 16 vezes três é 48, mais 14 nos dá 62. Agora, há um outro operador, e isso é relativamente novo em JavaScript. Vamos chamá-lo de sintaxe de propagação ou parâmetros de descanso. E deixe-me dar um pequeno exemplo, porque isso pode parecer um pouco diferente do que você está acostumado. E é sobre isso que estamos falando, o conjunto de três pontos. Então, quando usamos isso como um argumento de função, reúne todos os argumentos, todos os argumentos separados por vírgulas, e os coloca nessa matriz. Se você está familiarizado com C #, há um argumento chamado params, é semelhante a isso. Se você nunca viu o C # antes, não se preocupe, não é grande coisa. Mas o que acontece é agora, Posso pegar e usar isso como um array, e quando eu chamo a função, Posso apenas ter um número arbitrário de parâmetros, e esses estão todos reunidos naquela coisa que se torna, em nosso caso, a matriz de pontuação. Eu tenho meus argumentos nomeados primeiro, neste caso, quem é esse barbante? Quando é essa data? E então tudo o mais se torna parte desse parâmetro de descanso. Portanto, tenho quatro itens lá, e há minha média, Posso continuar a adicionar, e não coloquei nenhum tratamento de erro complexo aqui, então só vou ter certeza de que esses ainda são números, mas no que diz respeito ao parâmetro, Eu posso lançar quantos argumentos eu quiser lá e tudo será reunido nessa ordem. Agora, há também outro uso desse operador, e podemos chamar essa sintaxe de propagação, e ele aparece bem aqui. Basicamente, ele descompacta elementos do array onde eles são usados. Então, se eu tiver um conjunto de letras aqui primeiro e eu quero combinar essas duas matrizes, isso leva toda aquela coisa sem ter que passar, digamos, para cada um, por exemplo. E você pode ver lá, Eu li aquele array de conjunto mesclado e aí estão todos os meus valores. Obrigado por assistir. Em nossa próxima lição, veremos o que acontece com variáveis que não têm valores e como podemos diferenciá-los.