Skip to main content

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() o Boolean() 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.