Tipos de dados JavaScript

Resumo : neste tutorial, você aprenderá sobre os tipos de dados JavaScript e suas características exclusivas.

JavaScript possui os tipos de dados primitivos:

  1. null
  2. undefined
  3. boolean
  4. number
  5. string
  6. symbol– disponível no ES2015
  7. bigint– disponível no ES2020

e um tipo de dados complexo object.

Tipos de dados JavaScript

JavaScript é uma linguagem de tipo dinâmico, o que significa que uma variável não está associada a um tipo específico. Em outras palavras, uma variável pode conter valores de diferentes tipos. Por exemplo:

let counter = 120; // counter is a number
counter = false;   // counter is now a boolean
counter = "foo";   // counter is now a stringLinguagem de código:  JavaScript  ( javascript )

Para determinar o tipo atual do valor armazenado em uma variável, você usa o typeofoperador:

let counter = 120;
console.log(typeof(counter)); // "number"

counter = false; 
console.log(typeof(counter)); // "boolean"

counter = "Hi";
console.log(typeof(counter)); // "string"Linguagem de código:  JavaScript  ( javascript )

Saída:

"number"
"boolean"
"string"Linguagem de código:  JSON/JSON com comentários  ( json )

O tipo indefinido

O undefinedtipo é um tipo primitivo que possui apenas um valor undefined. Por padrão, quando uma variável é declarada, mas não inicializada, o padrão é undefined.

Considere o seguinte exemplo:

let counter;
console.log(counter);        // undefined
console.log(typeof counter); // undefinedLinguagem de código:  JavaScript  ( javascript )

Neste exemplo, the counteré uma variável. Como counternão foi inicializado, é atribuído o valor undefined. O tipo de countertambém é undefined.

É importante notar que o typeofoperador também retorna undefinedquando você o chama em uma variável que não foi declarada:

console.log(typeof undeclaredVar); // undefinedLinguagem de código:  JavaScript  ( javascript )

O tipo nulo

O nulltipo é o segundo tipo de dados primitivo que também possui apenas um valor null. Por exemplo:

let obj = null;
console.log(typeof obj); // objectLinguagem de código:  JavaScript  ( javascript )

Os typeof nullretornos objectsão um bug conhecido em JavaScript. Uma proposta de correção foi rejeitada devido ao potencial de quebrar muitos sites existentes.

JavaScript define que nullé igual ao undefinedseguinte:

console.log(null == undefined); // trueLinguagem de código:  JavaScript  ( javascript )

O tipo de número

JavaScript usa o numbertipo para representar números inteiros e de ponto flutuante.

A instrução a seguir declara uma variável e inicializa seu valor com um número inteiro:

let num = 100;Linguagem de código:  JavaScript  ( javascript )

Para representar um número de ponto flutuante, inclua um ponto decimal seguido por pelo menos um número. Por exemplo:

let price = 12.5; 
let discount = 0.05;Linguagem de código:  JavaScript  ( javascript )

Observe que o JavaScript converte automaticamente um número de ponto flutuante em um número inteiro se o número parecer ser um número inteiro.

A razão é que o Javascript sempre deseja usar menos memória, pois um valor de ponto flutuante usa duas vezes mais memória que um valor inteiro. Por exemplo:

let price = 200.00; // interpreted as an integer 200Linguagem de código:  JavaScript  ( javascript )

Para obter o intervalo do tipo de número, você usa Number.MIN_VALUEe Number.MAX_VALUE. Por exemplo:

console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(Number.MIN_VALUE); // 5e-324Linguagem de código:  JavaScript  ( javascript )

Além disso, você pode usar Infinitye -Infinitypara representar o número infinito. Por exemplo:

console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
console.log(-Number.MAX_VALUE - Number.MAX_VALUE); // -InfinityLinguagem de código:  JavaScript  ( javascript )

NaN

NaNsignifica Não é um número. É um valor numérico especial que indica um número inválido. Por exemplo, a divisão de uma string por um número retorna NaN:.

console.log('a'/2); // NaN;Linguagem de código:  JavaScript  ( javascript )

O NaNpossui duas características especiais:

  • Qualquer operação com NaNretornos NaN.
  • O NaNnão é igual a nenhum valor, incluindo ele mesmo.

aqui estão alguns exemplos:

console.log(NaN/2); // NaN
console.log(NaN == NaN); // falseLinguagem de código:  JavaScript  ( javascript )

O tipo de string

Em JavaScript, uma string é uma sequência de zero ou mais caracteres. Uma string literal começa e termina com aspas simples ( ') ou aspas duplas ( ").

Uma string que começa com aspas duplas deve terminar com aspas duplas, e uma string que começa com aspas simples também deve terminar com aspas simples. Por exemplo:

let greeting = 'Hi';
let message  = "Bye";Linguagem de código:  JavaScript  ( javascript )

Se quiser usar aspas simples ou duplas em uma string literal, você precisará usar a barra invertida para escapar delas. Por exemplo:

let message = 'I\'m also a valid string'; // use \ to escape the single quote (')Linguagem de código:  JavaScript  ( javascript )

As strings JavaScript são imutáveis , o que significa que não podem ser modificadas depois de criadas. No entanto, você pode criar uma nova string a partir de uma existente. Por exemplo:

let str = 'JavaScript';
str = str + ' String';Linguagem de código:  JavaScript  ( javascript )

Neste exemplo:

  • Primeiro, declare a strvariável e inicialize-a com uma string de 'JavaScript'.
  • Segundo, use o +operador para combinar 'JavaScript'com ' String'para tornar seu valor como 'Javascript String'.

Nos bastidores, o mecanismo JavaScript cria uma nova string que contém a nova string 'JavaScript String'e destrói as strings originais 'JavaScript'e ' String'.

O exemplo a seguir tenta modificar o primeiro caractere da string JavaScript:

let s = 'JavaScript';
s[0] = 'j';
console.log(s)Linguagem de código:  JavaScript  ( javascript )

A saída é:

'JavaScript'Linguagem de código:  JavaScript  ( javascript )

Mas não:

'javaScript'Linguagem de código:  JavaScript  ( javascript )

O tipo booleano

O booleantipo possui dois valores literais: truee falseem letras minúsculas. O exemplo a seguir declara duas variáveis ​​que contêm os valores booleanos.

let inProgress = true;
let completed = false;

console.log(typeof completed); // booleanLinguagem de código:  JavaScript  ( javascript )

JavaScript permite que valores de outros tipos sejam convertidos em valores booleanos de trueou false.

Para converter valores de outros tipos em valores booleanos, você usa a Boolean()função.

A tabela a seguir exibe as regras de conversão:

Tipo verdadeiro falso
corda string não vazia string vazia
número número diferente de zero e infinito 0, NaN
objeto objeto não nulo nulo
indefinido   indefinido

Por exemplo:

console.log(Boolean('Hi'));// true
console.log(Boolean(''));  // false

console.log(Boolean(20));  // true
console.log(Boolean(Infinity));  // true
console.log(Boolean(0));  // false

console.log(Boolean({foo: 100}));  // true on non-empty object
console.log(Boolean(null));// falseLinguagem de código:  JavaScript  ( javascript )

O tipo de símbolo

JavaScript introduziu um novo tipo primitivo no ES6: o symbol. Ao contrário de outros tipos primitivos, o symboltipo não possui uma forma literal.

Para criar um símbolo, você chama a Symbolfunção da seguinte forma:

let s1 = Symbol();Linguagem de código:  JavaScript  ( javascript )

A Symbolfunção cria um novo valor exclusivo sempre que você a chama.

console.log(Symbol() == Symbol()); // falseLinguagem de código:  JavaScript  ( javascript )

Observe que você aprenderá mais sobre símbolos no tutorial de símbolos .

O tipo bigint

O bigint tipo representa os números inteiros maiores que 2 53  – 1. Para formar um bigintnúmero literal, você anexa a letra nno final do número:

let pageView = 9007199254740991n;
console.log(typeof(pageView)); // 'bigint'Linguagem de código:  JavaScript  ( javascript )

E você aprenderá mais sobre o biginttipo aqui .

O tipo de objeto

Em JavaScript, um objeto é uma coleção de  propriedades , onde cada propriedade é definida como um par chave-valor.

O exemplo a seguir define um objeto vazio usando a sintaxe literal do objeto:

let emptyObject = {};Linguagem de código:  JavaScript  ( javascript )

O exemplo a seguir define o personobjeto com duas propriedades: firstNamee lastName.

let person = {
    firstName: 'John',
    lastName: 'Doe'
};Linguagem de código:  JavaScript  ( javascript )

O nome de uma propriedade de um objeto pode ser qualquer string. Você pode usar aspas ao redor do nome da propriedade se ele não for um identificador válido.

Por exemplo, se o personobjeto tiver uma propriedade first-name, você deve colocá-la entre aspas, como "first-name".

Uma propriedade de um objeto pode conter um objeto. Por exemplo:

let contact = {
    firstName: 'John',
    lastName: 'Doe',
    email: '[email protected]',
    phone: '(408)-555-9999',
    address: {
        building: '4000',
        street: 'North 1st street',
        city: 'San Jose',
        state: 'CA',
        country: 'USA'
    }
}Linguagem de código:  JavaScript  ( javascript )

O contactobjeto possui as  propriedades firstName, lastName, email, phonee address.

A addressprópria propriedade contém um objeto que possui propriedades building,   street, city, statee country.

Para acessar a propriedade de um objeto, você pode usar

  • A notação de ponto ( .)
  • A notação semelhante a uma matriz ( []).

O exemplo a seguir usa a notação de ponto ( .) para acessar as propriedades firstName e  lastNamedo contactobjeto.

console.log(contact.firstName);
console.log(contact.lastName);Linguagem de código:  CSS  ( css )

Se você fizer referência a uma propriedade que não existe, obterá um undefinedvalor. Por exemplo:

console.log(contact.age); // undefinedLinguagem de código:  JavaScript  ( javascript )

O exemplo a seguir usa a notação semelhante a uma matriz para acessar as propriedades email e phonedo contactobjeto.

console.log(contact['phone']); // '(408)-555-9999'
console.log(contact['email']); // '[email protected]'Linguagem de código:  JavaScript  ( javascript )

Resumo

  • JavaScript tem os tipos primitivos: number, string, boolean, null, undefinede symbole bigintum tipo complexo: object.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *