Resumo : neste tutorial, você aprenderá sobre os tipos de dados JavaScript e suas características exclusivas.
JavaScript possui os tipos de dados primitivos:
e um tipo de dados complexo object
.
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 string
Linguagem de código: JavaScript ( javascript )
Para determinar o tipo atual do valor armazenado em uma variável, você usa o typeof
operador:
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 undefined
tipo é 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); // undefined
Linguagem de código: JavaScript ( javascript )
Neste exemplo, the counter
é uma variável. Como counter
não foi inicializado, é atribuído o valor undefined
. O tipo de counter
também é undefined
.
É importante notar que o typeof
operador também retorna undefined
quando você o chama em uma variável que não foi declarada:
console.log(typeof undeclaredVar); // undefined
Linguagem de código: JavaScript ( javascript )
O tipo nulo
O null
tipo é o segundo tipo de dados primitivo que também possui apenas um valor null
. Por exemplo:
let obj = null;
console.log(typeof obj); // object
Linguagem de código: JavaScript ( javascript )
Os typeof null
retornos object
sã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 undefined
seguinte:
console.log(null == undefined); // true
Linguagem de código: JavaScript ( javascript )
O tipo de número
JavaScript usa o number
tipo 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 200
Linguagem de código: JavaScript ( javascript )
Para obter o intervalo do tipo de número, você usa Number.MIN_VALUE
e Number.MAX_VALUE
. Por exemplo:
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(Number.MIN_VALUE); // 5e-324
Linguagem de código: JavaScript ( javascript )
Além disso, você pode usar Infinity
e -Infinity
para representar o número infinito. Por exemplo:
console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
console.log(-Number.MAX_VALUE - Number.MAX_VALUE); // -Infinity
Linguagem de código: JavaScript ( javascript )
NaN
NaN
significa 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 NaN
possui duas características especiais:
- Qualquer operação com
NaN
retornosNaN
. - O
NaN
não é igual a nenhum valor, incluindo ele mesmo.
aqui estão alguns exemplos:
console.log(NaN/2); // NaN
console.log(NaN == NaN); // false
Linguagem 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
str
variá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 boolean
tipo possui dois valores literais: true
e false
em 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); // boolean
Linguagem de código: JavaScript ( javascript )
JavaScript permite que valores de outros tipos sejam convertidos em valores booleanos de true
ou 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));// false
Linguagem 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 symbol
tipo não possui uma forma literal.
Para criar um símbolo, você chama a Symbol
função da seguinte forma:
let s1 = Symbol();
Linguagem de código: JavaScript ( javascript )
A Symbol
função cria um novo valor exclusivo sempre que você a chama.
console.log(Symbol() == Symbol()); // false
Linguagem 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 bigint
número literal, você anexa a letra n
no final do número:
let pageView = 9007199254740991n;
console.log(typeof(pageView)); // 'bigint'
Linguagem de código: JavaScript ( javascript )
E você aprenderá mais sobre o bigint
tipo 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 person
objeto com duas propriedades: firstName
e 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 person
objeto 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 contact
objeto possui as propriedades firstName
, lastName
, email
, phone
e address
.
A address
própria propriedade contém um objeto que possui propriedades building
, street
, city
, state
e 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 lastName
do contact
objeto.
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 undefined
valor. Por exemplo:
console.log(contact.age); // undefined
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir usa a notação semelhante a uma matriz para acessar as propriedades email
e phone
do contact
objeto.
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
,undefined
esymbol
ebigint
um tipo complexo:object
.