Quais são os tipos de dados encontrados no JavaScript e como funcionam?
Tags: javascript
Published: 2023-01-06 21:12:57




Na programação, entender os tipos de dados é crucial. Os tipos de dados determinam como um computador pode manipular e operar variáveis. Sem o conhecimento adequado dos tipos de dados, um computador não seria capaz de realizar operações com precisão em variáveis. Este artigo tenta listar as estruturas de dados internas disponíveis em JavaScript e quais propriedades elas possuem. Estes podem ser usados ​​para construir outras estruturas de dados.

Todos os tipos de dados, exceto Object, representam valores imutáveis ​​que são representados diretamente no nível mais baixo da linguagem. Esses dados podem ser tanto Dinâmicos, como de tipagem fraca. Digamos que eu declare a situação abaixo:

```
let example = 18; // example agora pertence a um número
example = "cinema"; // example agora é uma string
example = true; // example agora é booleano
```

A situação acima demonstra que quando a variável "exemplo" é modificada e fornecida com valores diferentes, a linguagem de programação entende que os tipos de dados declarados foram alterados e se ajusta adequadamente para fazer as alterações necessárias. Agora observe a situação abaixo:

```
let example = 18;
let answer = example * "2";
```

Example recebeu o valor 18, e como JavaScript é uma linguagem de tipagem fraca, ao chamar example + 2, ocorrerá um resultado 36, como na situação abaixo:

```
console.log(answer); //resultado será 36

```

 Esses valores são conhecidos como valores primitivos. Existem tipos de dados diferentes, vamos analisar: 


TIPOS PRIMITIVOS:

Tipo STRING -
A string seria ser lembrada como o tipo de dados em texto, pois nela se pode conter caracteres, símbolos, espaços, novas linhas, caracteres de outros idiomas, etc. 

```
let lang = 'JavaScript';
let system = "Ubuntu"
```

O exemplo acima mostra como String guarda informações.


Uma string pode ser denotada usando um par de aspas simples (''), um par de aspas duplas ("") ou até as um par de acento grave(``). Normalmente não existem diferenças entre as duas primeiras, porém o acento grave tem uma característica única:



```
var name = "Sérgio";

alert( `Hello i am , ${name}!` ); //  haverá uma mensagem de alerta escrita : Hello i am, Sérgio!
Olá, eu sou Sérgio!(traduzindo para nossa língua).
alert( `The result this question is: ${1 + 2}` ); // haverá uma mensagem de alerta escrita:  The result this question is 3.
```



Tipo Number -

O tipo de dados number representa números inteiros e números de ponto flutuante. Existem muitas operações que podem ser realizadas em números, como multiplicação (*), divisão (/), adição (+) e subtração (-). 


```
let cacthNumber = 29;
catchNumber =29;
```


Além dos números regulares, também existem valores numéricos especiais que pertencem a tipo de dados: Infinity, -Infinity e NaN. Veja abaixo:

```
alert(0/0); // Valor infinito

alert("texto qualquer criado agora" / 2); // NaN
```

No caso NaN significa Not a Number ou traduzindo, não é um número, que é o caso da expressão destacada acima que junta uma string que não recebeu nenhum valor, divida por 2. O resultado é NaN.



Tipo BigInt -

Este também se refere a números. Pode se perguntar: já não existe o tipo Number?  O  “number” pode armazenar números inteiros ,mas fora do intervalo seguro de inteiros haverá um erro de precisão, porque nem todos os dígitos cabem no armazenamento fixo de 64 bits. Portanto, um valor “aproximado” pode ser armazenado de 1.7976931348623157 * 10308±(253-^1). Em tradução simples: qualquer número acima de 2^53-1.  Ao final de cada gigantesco número, ele utilizará a letra (n):



```
const bigInt = 1234567890123456789012345678901234567890n;
```



Vale mencionar que esse tipo de dado não é muito utilizado, mas existe para casos especiais



Tipo Boolean -

O tipo Boolean são amplamente usados ​​na programação condicional para controlar o fluxo do programa, tomando decisões sobre os resultados de determinadas avaliações. Usado para armazenar valores como true ou false.



```
let Comparation = 4 > 1;
alert( Comparation ); // true (A comparação é sim maior que 1).
```




```
let x = 4;
let y = 4;
let z = 9;
(x == y)       //  true
(x == z)       //  false
```


Tipo NULL -

O valor especial NULL é um tipo separado, pois é usado para representar um valor especial que indica que uma variável ou objeto que não tem nenhum valor atribuído a ele ainda. Para ser mais simples, comparemos erroneamente com a música "casa muito engraçada". Embora a graça da música seja que a casa não existe, ela por assim dizer existe no imaginário, mas não tem nada , nenhuma parede,teto,banheiro...Nada disso, mas ela ainda "existe". Do mesmo modo o Null se refere a algo desconhecido ou que não foi atribuído nada. Assim como uma questão numa prova pode ser anulada, Null se refere a algo existente mas que não carrega consigo nada, sendo vazio. 

Vejamos no exemplo abaixo:



```
let R = null

```


Tipo Undefined -

Null e Undefined podem se parecer muito, mas com conceitos diferentes: undefined indica a ausência de um valor, enquanto null indica a ausência de um objeto (o que também pode ser uma desculpa para typeof null === "objeto"). A linguagem geralmente assume o padrão indefinido quando algo que não tem de um valor:


```
let age;
alert(age);
```


Percebe-se acima que a maior diferença é que de fato Undefined só não foi definido. Caso age seja declarado, ele deixará de ser indefinido. Enquanto Null será sempre Null

Tipo typeof Operator -

O operador typeof retorna o tipo do operando. É útil quando queremos processar valores de diferentes tipos de forma diferente ou apenas queremos fazer uma verificação rápida. Uma chamada para typeof x retorna uma string com o nome do tipo:




```
typeof 0 // "number"

typeof 10n // "bigint"

typeof true // "boolean"
```


Tipo Object e suas sub-categorias 

No caso de Object, este é mais um tipo especial: Todos os outros tipos são chamados de “primitivos” porque seus valores podem conter apenas uma única coisa (seja uma string, um número ou qualquer outra coisa). Em contraste, os objetos são usados ​​para armazenar coleções de dados e entidades mais complexas.

Sendo assim, usados para armazenar uma série de dados em conjunto, por exemplo:



```
const person = {firstName:"John", lastName:"Stuwart", age:40, eyeColor:"blue"};

let obj = { key1: 'value1', key2: 'value2', key3: 'value3' }; 
console.log(obj.key1); // imprime "value1" 
console.log(obj['key2']); // imprime "value2"
```


ARRAYS -

Uma Array é como uma lista de valores. Cada valor na lista fica em uma determinada posição, formalmente conhecida como seu índice . Uma matriz tem a capacidade de armazenar vários valores sob o mesmo capô. Os valores individuais de um array são formalmente chamados de elementos . Vale lembrar que ela não precisa ter elementos do mesmo tipo.



```
var nums = [1, 5, 10];

->nums[0]
1
->nums[2]
10
->nums[1]
5
```



FUNCTIONS -

As funções são fundamentais na programação e nenhum programador pode negar sua importância. Elas desempenham um papel integral em diversas linguagens de programação, e são consideradas por alguns como valores tão importantes quanto outros elementos do código. Elas servem como uma parte pronta de um código que só precisa ser chamada para ser executada.



```
function functionName(parameterList) statement

```



Sabendo disso, conseguimos responder quais são os tipos de dados encontrados no JavaScript e como funcionam!!


Obrigado por ler até o final!!