Number e Operadores Aritméticos
Published: 2021-03-09 00:00:01

E chegamos ao nosso quarto post da minha [saga de estudos](https://dev.to/inando85/bem-vindo-de-novo-javascript-1b48) em JavaScript.

No post de hoje, irei falar um pouco sobre o tipo de dados `number`, que é usado para representação de números.

Independente do tipo de número, seja `inteiro` ou `decimal`, no JavaScript, são tratados como `number`.

Para representar números decimais em JavaScript, utiliza-se ponto `.`.

Exemplos:

~~~javascript
const myNumber = 10

console.log(myNumber) // 10

const yourNumber = 5.15

console.log(yourNumber) // 5.15
~~~

No JavaScript, os números também são usados para realizar operações matemáticas.

Operadores aritméticos:

Adição: Utilizamos o `+`

```js
const numberOne = 10
const numberTwo = 5

const result = numberOne + numberTwo

console.log(result) // 15
```

Subtração: Utilizamos o `-`

```js
const numberOne = 10
const numberTwo = 5

const result = numberOne - numberTwo

console.log(result) // 5
```

Multiplicação: Utilizamos o `*`

```js
const numberOne = 10
const numberTwo = 5

const result = numberOne * numberTwo

console.log(result) // 50
```

Divisão: Utilizamos o `/`

```js
const numberOne = 10
const numberTwo = 5

const result = numberOne / numberTwo

console.log(result) // 2
```

Exponenciação: Utilizamos o `**`

```js
const numberOne = 10
const numberTwo = 5

const result = numberOne ** numberTwo

console.log(result) // 100000
```

Módulo: Utilizamos o `%`

Módulo é o mesmo que resto da divisão, imagina que você tenha 4 balas para dividir para dois amigos, cada amigo ficará com 2 balas e não sobrará nenhuma, logo o resto desta divisão é `0`.

Imagina agora que fossem 5 balas, para dividir para os mesmos dois amigos, ambos ainda receberiam 2 balas, mas desta vez, sobraria uma, logo o resto desta divisão é `1`.

```js
const numberOne = 10
const numberTwo = 5

const result = numberOne % numberTwo

console.log(result) // 0
```

### Ordem de Precedência

O JavaScript segue a mesma ordem de precedência da matemática.

- 1: Parênteses
- 2: Expoentes e Raízes
- 3: Multiplicação e Divisão
- 4: Adição e Subtração

Vejamos o exemplo abaixo:

```js
const crazyOperation = 5 * (10 - 3) ** 2

console.log(crazyOperation) // 245
```

Para chegar no resultado acima, o JavaScript realizou a conta na seguinte sequência:

- 1: A subtração dentro dos parênteses (10 - 3) = 7
- 2: A Exponenciação 7 ** 2 = 49
- 3: A multiplicação 5 * 49 = 245

### Operadores de Incremento e Decremento

#### Incremento

É possível utilizarmos operadores para incrementar variáveis, ou seja, somar mais 1 ao valor já contido na variável

Incrementando normalmente o valor de uma variável:

```js
let postLikes = 10

postLikes = postLikes + 1

console.log(postLikes) // 11
```

Incrementando o valor da variável usando o operador de incremento, um shorthand para o código acima.

Informaremos que a variável `postLikes` deve receber todo o valor que ela já possui, mais 1.

```js
let postLikes = 10

postLikes++

console.log(postLikes) // 11
```

#### Decremento

Tendo como base a mesma lógica mostrada acima, existe um operador de decremento, que irá diminuir 1 do valor atual da variável.

Decrementando normalmente o valor de uma variável:

```js
let postLikes = 10

postLikes = postLikes - 1

console.log(postLikes) // 9
```

Decrementando o valor da variável usando o operador de decremento, um shorthand para o código acima.

Informaremos que a variável `postLikes` deve receber todo o valor que ela já possui, menos 1.

```js
let postLikes = 10

postLikes--

console.log(postLikes) // 9
```

### Shorthand para os operadores aritméticos

#### Adição

Iremos informar que a variável `myBooks` deve receber todo o valor que ela possui, mais o valor que desejarmos, exemplo:

```js
let myBooks = 20

myBooks += 10

console.log(myBooks) // 30
```

#### Subtração

Iremos informar que a variável `myBooks` deve receber todo o valor que ela possui, menos o valor que desejarmos, exemplo:

```js
let myBooks = 20

myBooks -= 10

console.log(myBooks) // 10
```

#### Multiplicação

Iremos informar que a variável `myBooks` deve receber todo o valor que ela possui, multiplicado pelo valor que desejarmos, exemplo:

```js
let myBooks = 20

myBooks *= 2

console.log(myBooks) // 40
```

#### Divisão

Iremos informar que a variável `myBooks` deve receber todo o valor que ela possui, dividido pelo valor que desejarmos, exemplo:

```js
let myBooks = 20

myBooks /= 2

console.log(myBooks) // 10
```

### NaN - Not a Number

Este valor NaN (Not a Number), irá aparecer toda vez que tentarmos realizar alguma operação que não faça sentido, que não resulte em um número.

```js
const myNumber = 7
const myName = 'Fernando'

const result = myNumber / myName

console.log(result) // NaN
```

Aqui vale um ponto de atenção, essa regra não se aplica ao usarmos a adição `+`, pois é possível concatenar números com strings. Porém, o resultado de uma concatenação entre número e strings, sempre será uma string.

```js
let messages = 10

const totalMessages = 'O número total é de: ' + messages + ' mensagens.'

console.log(totalMessages) // O número total é de: 10 mensagens.
```

No caso acima, o 10 que é do tipo `number`, foi automaticamente convertido para string, devido a concatenação.

Lembrando que existe muito mais informação referente a este tipo de dado, segue [documentação](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) da MDN, para mais detalhes.

________________________________________________________________

Esse foi mais um post da minha saga de estudos em JavaScript Vanilla. Espero que estejam gostando!

Qualquer dúvida ou sugestão, vocês me encontram nas minhas redes sociais:

[LinkedIn](https://linkedin.com/in/inando85)
[GIthub](https://github.com/inando85)
[Twitter](https://twitter.com/inando85)