Coerção em JavaScript

Introdução Link to heading

A coerção é um processo fundamental em JavaScript responsável por converter um valor de um tipo de dados para outro. Existem dois tipos de coerção:

Coerção implícita: Link to heading

  • É a forma como o JavaScript converte automaticamente um valor para que ele possa ser usado em uma operação.
  • O tipo de dados resultantes depende do operador utilizado e dos tipos de dados dos operandos.

Exemplos: Link to heading

Concatenação: Link to heading
const a = 4 + "7"; // Converte para "47" (concatenação)

typeof a; // "string" / Texto
Multiplicação: Link to heading
const a = 4 * "7"; // Converte para 28 (multiplicação)

typeof a; // "number" / Numero

Coerção explícita: Link to heading

  • É a forma como forçamos a conversão de um valor para um tipo de dado específico.
  • A função String() é usada para converter em uma string de texto e Number() para converter em um número.

Exemplos: Link to heading

const a = 20;

const b = a + ""; // Converter para "20" (concatenação)

console.log(b); // "20"

typeof b; // "string" / texto

const c = String(a); // Convertido explicitamente para "20"

console.log(c); // "20"

const d = Number(c);

typeof d; // "number" / Numero

Tabela de coerção: Link to heading

Operador Operandos Resultado
+ Cadeia + Cadeia Concatenação
+ String + Número Concatenação
+ Número + String Concatenação
+ Número + Número Soma
- Número - Número Subtração
* Número*Número Multiplicação
/ Número / Número Divisão
== Qualquer tipo Comparação de valores (não de tipos)
=== Qualquer tipo Comparação de valores e tipos

Recomendações: Link to heading

  • É importante entender como funciona a coerção para evitar erros inesperados no código.
  • Recomenda-se o uso de coerção explícita quando necessário para evitar ambiguidades.
  • A ferramenta typeof pode ser usada para verificar o tipo de dados de uma variável.

Continue aprendendo sobre coerção para escrever código JavaScript mais preciso e confiável!

<< Hoisting em JavaScript Valores verdadeiros e falsos em JavaScript >>