Tipus de Dades i Conversió
En aquest capítol explorarem els tipus de dades primitius, com funcionen, com es poden convertir i com opera la coerció implícita i explícita en JavaScript.
Tipus de dades primitius
Number
let edat = 29;
let decimal = 3.14;
Inclou Infinity
, -Infinity
, NaN
(Not a Number).
console.log(0 / 0); // NaN
console.log(1 / 0); // Infinity
String
let nom = "Joan";
let frase = "Hola món";
let plantilla = `Hola, ${nom}`;
Boolean
let actiu = true;
let cancel·lat = false;
Undefined
let x;
console.log(x); // undefined
Null
let buida = null;
Tipus especials
Symbol
(ES6)
Crea identificadors únics.
const id = Symbol("id");
BigInt
(ES2020)
Per treballar amb nombres molt grans:
const big = 1234567890123456789012345678901234567890n;
Funcions de conversió explícita
A Number
Number("123"); // 123
parseInt("12.3"); // 12
parseFloat("12.3"); // 12.3
Number("abc"); // NaN
A String
String(123); // "123"
(123).toString(); // "123"
A Boolean
Boolean(0); // false
Boolean(""); // false
Boolean("Hola"); // true
Boolean(123); // true
Coerció implícita
JavaScript converteix tipus automàticament en moltes situacions.
"5" + 2; // "52"
"5" - 2; // 3
false + 1; // 1
null + 1; // 1
undefined + 1; // NaN
"10" * "2"; // 20
Comparació amb tipus diferents
Amb ==
(coerció)
0 == false; // true
"" == false; // true
null == undefined; // true
Amb ===
(estricta)
0 === false; // false
"" === false; // false
null === undefined; // false
Recomanat: sempre usar ===
per evitar problemes de coerció.
Mètodes útils
Number
let n = 3.14159;
n.toFixed(2); // "3.14"
n.toString(); // "3.14159"
Math
Math.round(3.7); // 4
Math.floor(3.7); // 3
Math.ceil(3.2); // 4
Math.random(); // entre 0 i 1
Math.pow(2, 3); // 8
Math.sqrt(16); // 4
String
"Hola".length; // 4
"Hola".toUpperCase(); // "HOLA"
"Hola món".includes("món"); // true
Activitats
Activitat 1
Escriu els resultats esperats:
Boolean(0);
Boolean("false");
"10" - 3;
"10" + 3;
null + true;
undefined + 1;
Activitat 2
Fes servir parseInt
, parseFloat
i Number
sobre:
"12.34";
"12abc";
"abc12";
true;
false;
("");
Activitat 3
Comprova i explica la diferència entre:
"5" == 5;
"5" === 5;
null == undefined;
null === undefined;
Bona pràctica
Sempre que sigui possible:
- Evita comparacions amb
==
- Converteix manualment els valors amb
Number()
,String()
oBoolean()
per assegurar comportament previsible - Usa
typeof
per saber quin tipus tens
Aquest capítol et proporciona les eines per entendre profundament com JavaScript tracta les dades, i com evitar errors habituals en comparacions i conversions.