Tipos de Dados em JavaScript
Este artigo explica os tipos de dados em JavaScript.
YouTube Video
Tipos de Dados em JavaScript
O JavaScript possui tipos de dados para classificar valores, que podem ser amplamente divididos em tipos primitivos e tipos de objeto. Os tipos de dados determinam que tipo de dado é armazenado em uma variável e influenciam como ele pode ser manipulado.
Tipos Primitivos
Os tipos primitivos são tipos de dados simples que representam um único valor. O JavaScript possui os seguintes 7 tipos primitivos.
number
1let num = 42;
2let pi = 3.14;
3
4console.log("Value of num:", num);
5console.log("Value of pi:", pi);
number
é um tipo usado para lidar com valores numéricos, incluindo inteiros e números de ponto flutuante (decimais). Manipular valores que excedem certos limites resulta emInfinity
ouNaN
(Não é um Número).
1// Decimal calculations
2console.log(0.1 + 0.2 === 0.3); // false
3console.log(0.1 + 0.2); // 0.30000000000000004
4
5// Calculations with large numbers
6console.log(9007199254740991 + 1); // correct value
7console.log(9007199254740991 + 2); // incorrect value
- No JavaScript, os números são representados como números de ponto flutuante. Como resultado, certos decimais (especialmente aqueles que não podem ser representados precisamente em binário) podem não ser expressos com precisão.
- Quando cálculos precisos são necessários, como no caso de valores monetários, é necessário evitar esses erros de arredondamento. Por exemplo, você pode usar
BigInt
ou ajustar o número de casas decimais comtoFixed()
.
string
1let greeting = "Hello, world!";
2let char = 'A';
3const message = `"${greeting}" in JavaScript`;
4
5console.log("Value of greeting:", greeting);
6console.log("Value of char:", char);
7console.log("Value of message:", message);
string
é um tipo de dado usado para manipular texto, representando uma sequência de caracteres. É representado ao envolver o texto em aspas simples ('
) ou aspas duplas ("). A partir do ES6, literais de template permitem incorporar variáveis de forma fácil usando acentos graves (
). Para incorporar uma variável, use a sintaxe${}
.
boolean
1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);
boolean
representa um valor lógico e só pode ter dois valores:true
oufalse
. É usado como resultado de expressões condicionais ou como um indicador.
null
1let result = null;
2
3console.log("Value of result:", result);
null
é um tipo de dado que indica explicitamente 'nenhum valor.'.null
é definido pelos desenvolvedores para indicar uma ausência intencional.
undefined
1let score;
2let subject = undefined;
3
4console.log("Value of score:", score); // undefined
5console.log("Value of subject:", subject);
undefined
é um tipo de dado que significa 'não definido.'.undefined
é automaticamente atribuído quando uma variável é declarada, mas não recebe um valor.
bigint
1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);
bigint
é um tipo de dado para manipulação de inteiros grandes.bigint
permite uma representação precisa de inteiros grandes que não podem ser representados pelo tiponumber
. Os literais debigint
são representados adicionando-sen
ao final de um número.bigint
é um tipo para manipular inteiros de tamanho arbitrário, sem limitações de faixa. No entanto,bigint
enumber
não podem ser operados diretamente em conjunto, então é necessário ter cuidado.
Symbol
1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
Symbol
é um tipo de dado usado para criar identificadores únicos. É criado usandoSymbol()
e pode ser usado como uma propriedade de um objeto. Ao contrário de outros tipos primitivos,Symbol
tem valores únicos, então mesmo com o mesmo conteúdo, é tratado como umSymbol
diferente.
Tipos de Objeto
Os tipos de objeto são estruturas de dados que podem armazenar múltiplos valores. Um objeto é uma coleção de pares chave-valor e pode ter propriedades e métodos.
Object
1let person = {
2 name: "John",
3 age: 30,
4 isEmployee: true
5};
6console.log(person.name); // John
Object
é uma coleção de propriedades (pares chave-valor) que pode armazenar vários tipos de dados. Os objetos são representados por chaves{}
, e cada propriedade é conectada por:
entre a chave e o valor.
Array
1let numbers = [10, 20, 30];
2console.log(numbers[0]); // 10
3console.log(numbers[1]); // 20
4console.log(numbers[2]); // 30
5console.log(numbers[3]); // undefined
Array
é uma lista que contém múltiplos valores de forma ordenada. Arrays são representados por colchetes[]
, e os valores são separados por vírgulas,
. Cada elemento é acessado usando um índice que começa em 0.
Function
1function greet(name) {
2 return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
- Funções são um tipo de objeto e blocos de código reutilizáveis. Funções podem ser definidas usando a palavra-chave
function
.
Outros Tipos de Objeto
- JavaScript também possui tipos de objeto embutidos, como
Date
,RegExp
,Map
eSet
. Esses lidam com dados de acordo com casos de uso específicos.
Conversão de Tipos
Conversões de tipo implícitas e explícitas são realizadas frequentemente em JavaScript.
Conversão de Tipo Implícita
- O JavaScript pode converter tipos automaticamente ao realizar operações entre diferentes tipos.
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);
- Neste exemplo, o número
5
é implicitamente convertido em uma string, resultando na string"55"
.
Conversão de Tipo Explícita
- Os desenvolvedores também podem realizar conversões de tipo de forma explícita.
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);
- Neste exemplo, a função
Number()
é usada para converter explicitamente a string"123"
no número123
.
Verificação de Tipos
Em JavaScript, você pode usar o operador typeof
para verificar o tipo de dado de uma variável.
1// Output: The type of 42 is: number
2console.log('The type of 42 is:', typeof 42);
3
4// Output: The type of 42 is: bigint
5console.log('The type of 42n is:', typeof 42n);
6
7// Output: The type of "hello" is: string
8console.log('The type of "hello" is:', typeof "hello");
9
10// Output: The type of true is: boolean
11console.log('The type of true is:', typeof true);
12
13// Output: The type of undefined is: undefined
14console.log('The type of undefined is:', typeof undefined);
15
16// Output: The type of null is: object
17console.log('The type of null is:', typeof null);
18
19// Output: The type of Symbol() is: symbol
20console.log('The type of Symbol() is:', typeof Symbol());
21
22// Output: The type of {} is: object
23console.log('The type of {} is:', typeof {});
24
25// Output: The type of function () {} is: function
26console.log('The type of function () {} is:', typeof function () {});
Conclusão
- Tipos primitivos incluem
number
,string
,boolean
,null
,undefined
esymbol
. - Tipos de objeto incluem
Object
,Array
,Function
, entre outros. - Como ocorrem tanto conversões de tipo automáticas quanto explícitas, é importante entender o uso adequado dos tipos de dados.
Você pode acompanhar o artigo acima usando o Visual Studio Code em nosso canal do YouTube. Por favor, confira também o canal do YouTube.