Conversão de tipo 101: Noções básicas sobre coerção e conversão em JavaScript
Coerção de tipo e conversão de tipo são conceitos em programação que se referem ao processo de conversão de um tipo de dados em outro.
Tipo de Coerção:
A coerção de tipo refere-se à conversão automática de tipos de dados que ocorre em JavaScript quando diferentes tipos de dados são usados juntos em uma operação. Por exemplo, se um número e uma string forem adicionados, o JavaScript converterá automaticamente o número em uma string para que a operação possa ser executada.
let num = 5;
let str = "3";
console.log(num + str); //output: "53"
- Usando os operadores == ou != para comparação, que executam coerção de tipo antes de fazer uma comparação
- Usar o operador unário mais (
+) antes de um valor executará a coerção de tipo para Number. No entanto, o+sinal só pode aparecer uma vez e não deve ser seguido de espaço em branco. Por exemplo:
let x = "5";
let y = +x;
console.log(typeof y); // output: number
Por outro lado, a conversão de tipos refere-se à conversão explícita de tipos de dados. Isso é feito usando funções de conversão como Number(), eString()Boolean()Symbol()
let str = '5';
let num = Number(str);
console.log(num); //output: 5
Number(): ANumber()função é usada para converter um valor não numérico em um valor numérico. Por exemplo, se você deseja converter um valor de string de “10” em um número, use aNumber()função assim:
let x = "5";
let y = x+10 // output: 510
let z= Number(x)+10;
console.log(y); // output: 510
console.log(z); // output: 15
let intValue = parseInt("3.14");
console.log(floatValue); // Output: 3
console.log(parseInt('22.5')); // Output: 22
console.log(parseFloat('22.5')); // Output: 22.5
console.log(Number('22.5')); // Output: 22.5
console.log(parseInt('070')); // Output: 70
console.log(parseFloat('070')); // Output: 70
console.log(Number('070')); // Output: 70
console.log(parseInt('1234blue')); // Output: 1234
console.log(parseFloat('1234blue')); // Output: 1234
console.log(Number('1234blue')); // Output: NaN
console.log(parseInt('0xFF')); // Output: 255
console.log(parseFloat('0xFF')); // Output: 0
console.log(Number('0xFF')); // Output: 255
console.log(parseInt("10 20 30")); // 10
console.log(parseFloat("10 20 30")); // 10
console.log(Number("10 20 30")); // NaN
let num = 10;
console.log(String(num)); // "10"
let bool = true;
console.log(String(bool)); // "true"
let obj = {name: "John"};
console.log(String(obj)); // "[object Object]"
let arr = [1, 2, 3];
console.log(String(arr)); // "1,2,3"
let date = new Date();
console.log(String(date)); // "Sun Jan 29 2023 18:52:01 GMT+0000 (Coordinated Universal Time)"
let value = 0;
console.log(Boolean(value)); // false
value = "hello";
console.log(Boolean(value)); // true
value = undefined;
console.log(Boolean(value)); // false
value = {};
console.log(Boolean(value)); // true
value = -1;
console.log(Boolean(value)); // true
Use comparação de igualdade estrita ===em vez de comparação de igualdade abstrata ==. Evite depender da coerção de tipo implícita do JavaScript, especialmente em operações aritméticas, e sempre use conversão de tipo quando necessário.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)