1. Cadeia
2. Número
3. Bigint
4. Booleano
5. Indefinido
6. Nulo
7. Símbolo
8. Objeto
O tipo de dados do objeto pode conter:
1. Um objeto
2. Uma matriz
3. Um encontro
// Numbers:
let length = 16;
let weight = 7.5;
// Strings:
let color = "Yellow";
let lastName = "Johnson";
// Booleans
let x = true;
let y = false;
// Object:
const person = {firstName:"John", lastName:"Doe"};
// Array object:
const cars = ["Saab", "Volvo", "BMW"];
// Date object:
const date = new Date("2022-03-25");
Uma variável JavaScript pode conter qualquer tipo de dados.
Na programação, os tipos de dados são um conceito importante.
Para poder operar com variáveis, é importante saber algo sobre o tipo.
Sem tipos de dados, um computador não pode resolver isso com segurança:
let x = 16 + "Volvo";
Faz algum sentido adicionar “Volvo” aos dezesseis? Será que produzirá um erro ou produzirá um resultado?
JavaScript tratará o exemplo acima como:
let x = "16" + "Volvo";
Ao adicionar um número e uma string, o JavaScript tratará o número como um corda.
let x = 16 + "Volvo";
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>When adding a number and a string, JavaScript will treat the number as a string.</p>
<p id="demo"></p>
<script>
let x = 16 + "Volvo";
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
let x = "Volvo" + 16;
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>When adding a string and a number, JavaScript will treat the number as a string.</p>
<p id="demo"></p>
<script>
let x = "Volvo" + 16;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
JavaScript avalia expressões da esquerda para a direita. Diferentes sequências podem produzir resultados diferentes:
let x = 16 + 4 + "Volvo";
Resultado:
20Volvo
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>JavaScript evaluates expressions from left to right. Different sequences can produce different results:</p>
<p id="demo"></p>
<script>
let x = 16 + 4 + "Volvo";
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
let x = "Volvo" + 16 + 4;
Resultado:
Volvo164
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>JavaScript evaluates expressions from left to right. Different sequences can produce different results:</p>
<p id="demo"></p>
<script>
let x = "Volvo" + 16 + 4;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
No primeiro exemplo, o JavaScript trata 16 e 4 como números, até chegar a “Volvo”.
No segundo exemplo, como o primeiro operando é uma string, todos os operandos são tratados como strings.
JavaScript possui tipos dinâmicos. Isso significa que a mesma variável pode ser usada segurar diferentes tipos de dados:
let x; // Now x is undefined
x = 5; // Now x is a Number
x = "John"; // Now x is a String
Uma string (ou string de texto) é uma série de caracteres como "John Doe".
Strings são escritas entre aspas. Você pode usar aspas simples ou duplas:
// Using double quotes:
let carName1 = "Volvo XC60";
// Using single quotes:
let carName2 = 'Volvo XC60';
Você pode usar aspas dentro de uma string, desde que elas não correspondam às aspas ao redor da string:
// Single quote inside double quotes:
let answer1 = "It's alright";
// Single quotes inside double quotes:
let answer2 = "He is called 'Johnny'";
// Double quotes inside single quotes:
let answer3 = 'He is called "Johnny"';
Você aprenderá mais sobre strings posteriormente neste tutorial.
Todos os números JavaScript são armazenados como números decimais (ponto flutuante).
Os números podem ser escritos com ou sem decimais:
// With decimals:
let x1 = 34.00;
// Without decimals:
let x2 = 34;
Números extra grandes ou extra pequenos podem ser escritos com métodos científicos (notação exponêncial:
let y = 123e5; // 12300000
let z = 123e-5; // 0.00123
A maioria das linguagens de programação possui muitos tipos de números:
Números inteiros (inteiros):
byte (8 bits), curto (16 bits), int (32 bits), longo (64 bits)
Números reais (ponto flutuante):
float (32 bits), duplo (64 bits).
Os números Javascript são sempre de um tipo:
double (ponto flutuante de 64 bits).
Você aprenderá mais sobre números posteriormente neste tutorial.
Todos os números JavaScript são armazenados em formato de ponto flutuante de 64 bits.
JavaScript BigInt é um novo tipo de dados (ES2020) que pode ser usado para armazenar valores inteiros grandes demais para serem representados por um número JavaScript normal.
let x = BigInt("123456789012345678901234567890");
Você aprenderá mais sobre BigInt posteriormente neste tutorial.
Os booleanos só podem ter dois valores: true
ou false
.
let x = 5;
let y = 5;
let z = 6;
(x == y)
// Returns true
(x == z) // Returns
false
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Booleans can have two values: true or false:</p>
<p id="demo"></p>
<script>
let x = 5;
let y = 5;
let z = 6;
document.getElementById("demo").innerHTML =
(x == y) + "<br>" + (x == z);
</script>
</body>
</html>
Booleanos são frequentemente usados em testes condicionais.
Você aprenderá mais sobre booleanos posteriormente neste tutorial.
Matrizes JavaScript são escritas entre colchetes.
Os itens da matriz são separados por vírgulas.
O código a seguir declara (cria) um array chamado cars
, contendo três itens (nomes de carros):
const cars = ["Saab", "Volvo", "BMW"];
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Arrays</h2>
<p>Array indexes are zero-based, which means the first item is [0].</p>
<p id="demo"></p>
<script>
const cars = ["Saab","Volvo","BMW"];
document.getElementById("demo").innerHTML = cars[0];
</script>
</body>
</html>
Os índices de array são baseados em zero, o que significa que o primeiro item é [0], o segundo é [1], e assim por diante.
Você aprenderá mais sobre arrays posteriormente neste tutorial.
Objetos JavaScript são escritos com chaves {}
.
Objeto propriedades são escritas como pares nome:valor, separados por vírgulas.
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p id="demo"></p>
<script>
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
person.firstName + " is " + person.age + " years old.";
</script>
</body>
</html>
O objeto (pessoa) no exemplo acima possui 4 propriedades: firstName, sobrenome, idade e cor dos olhos.
Você aprenderá mais sobre objetos posteriormente neste tutorial.
Você pode usar o operador JavaScript typeof
para encontrar o tipo de uma variável JavaScript.
O operador typeof
retorna o tipo de uma variável ou expressão:
typeof "" // Returns
"string"
typeof "John" // Returns
"string"
typeof "John Doe" // Returns
"string"
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The typeof operator returns the type of a variable or an expression.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
typeof "" + "<br>" +
typeof "John" + "<br>" +
typeof "John Doe";
</script>
</body>
</html>
typeof 0 // Returns
"number"
typeof 314 // Returns
"number"
typeof 3.14 // Returns
"number"
typeof (3) // Returns
"number"
typeof (3 + 4) // Returns
"number"
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The typeof operator returns the type of a variable or an expression.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
typeof 0 + "<br>" +
typeof 314 + "<br>" +
typeof 3.14 + "<br>" +
typeof (3) + "<br>" +
typeof (3 + 4);
</script>
</body>
</html>
Você aprenderá mais sobre typeof posteriormente neste tutorial.
Em JavaScript, uma variável sem valor tem o valor indefinido
. O tipo também é indefinido
.
let car; // Value is undefined,
type is undefined
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The value (and the data type) of a variable with no value is <b>undefined</b>.</p>
<p id="demo"></p>
<script>
let car;
document.getElementById("demo").innerHTML =
car + "<br>" + typeof car;
</script>
</body>
</html>
Qualquer variável pode ser esvaziada, definindo o valor como indefinido
. O tipo também será indefinido
.
car = undefined; // Value is undefined,
type is undefined
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>Variables can be emptied if you set the value to <b>undefined</b>.</p>
<p id="demo"></p>
<script>
let car = "Volvo";
car = undefined;
document.getElementById("demo").innerHTML = car + "<br>" + typeof car;
</script>
</body>
</html>
Um valor vazio não tem nada a ver com indefinido
.
Uma string vazia possui um valor legal e um tipo.
let car = ""; // The value is "", the typeof is "string"
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>An empty string has both a legal value and a type:</p>
<p id="demo"></p>
<script>
let car = "";
document.getElementById("demo").innerHTML =
"The value is: " +
car + "<br>" +
"The type is: " + typeof car;
</script>
</body>
</html>