1.1 Conversão de Tipos Explícita
Conversão de tipos em JavaScript é o processo de converter um valor de um tipo de dados para outro. Existem duas formas de conversão: explícita (manual) e implícita (automática). Compreender esses processos é importante para evitar erros e criar um código previsível.
Conversão explícita, também conhecida como conversão manual, é feita utilizando funções e métodos embutidos do JavaScript. É a conversão onde o programador define explicitamente qual tipo de dado deve ser convertido para outro tipo.
Métodos principais de conversão explícita:
1. Conversão para string
- Método
String(value)
: converte o valor para string
let num = 123;
let str = String(num);
console.log(typeof str); // "string"
value.toString()
: método do objeto que converte o valor para string
let bool = true;
let str = bool.toString();
console.log(typeof str); // "string"
2. Conversão para número
Number(value)
: converte o valor para número
let str = "456";
let num = Number(str);
console.log(typeof num); // "number"
parseInt(value, base)
: converte uma string para um número inteiro. O parâmetrobase
especifica a base numérica
let str = "123";
let num = parseInt(str, 10);
console.log(typeof num); // "number"
parseFloat(value)
: converte uma string para um número de ponto flutuante
let str = "123.45";
let num = parseFloat(str);
console.log(typeof num); // "number"
3. Conversão para booleano
Boolean(value)
: converte o valor para booleano
let str = "";
let bool = Boolean(str);
console.log(typeof bool); // "boolean"
1.2 Conversão de Tipos Implícita
Conversão implícita, também conhecida como conversão automática ou oculta, é realizada automaticamente pelo JavaScript ao executar operações com diferentes tipos de dados. A conversão implícita pode levar a resultados inesperados, então é preciso entendê-la e usá-la com cautela.
1. Conversão para string
Ao somar qualquer objeto a uma string, o JavaScript tentará convertê-lo em uma string.
Exemplo:
let result = "The number is " + 123;
console.log(result); // "The number is 123"
2. Conversão para número
Ao utilizar qualquer operador aritmético (exceto +) com strings que contenham números.
let result = "123" - 0;
console.log(result); // 123 (número)
Como isso funciona na prática:
let result = "123" - 10;
console.log(result); // 113 (número)
let result2 = "123" + 10;
console.log(result2); // 12310 (string)
3. Conversão para booleano
Ao usar valores em contextos lógicos (declarações condicionais, loops, etc.).
let value = "hello";
if (value) {
console.log("Value is truthy"); // Saída: "Value is truthy"
}
Exemplos de conversões em contexto lógico:
false
,0
,""
(string vazia),null
,undefined
, eNaN
são considerados valores falsos (false
)- Todos os outros valores são considerados verdadeiros (
true
)
if ("") {
console.log("This won't be logged.");
} else {
console.log('"" is considered false in a boolean context.');
}
// '"" is considered false in a boolean context.'
1.3 Exemplos de Conversão Implícita
Exemplo com operações aritméticas:
let width = "100";
let height = "200";
let area = Number(width) * Number(height); // Conversão explícita
console.log(area); // 20000
let perimeter = (+width) + (+height); // Uso do operador unário mais para conversão explícita
console.log(perimeter); // 300
Exemplo com contexto lógico:
let userInput = ""; // String vazia
if (!userInput) {
console.log("Usuário não inseriu dados."); // Conversão implícita da string para booleano
}
Exemplo com tipos combinados:
let value = "10";
let increment = 5;
let result = value + increment; // Conversão implícita de número para string
console.log(result); // "105"
result = Number(value) + increment; // Conversão explícita de string para número
console.log(result); // 15
GO TO FULL VERSION