Comprovacions de l’existència d’una variable a JavaScript

Quan programem amb JavaScript (o qualsevol altre llenguatge de scripting) és normal haver de fer comprovacions de l’existència d’una variable dins de l’espai de noms.

Si necessitem saber si una variable ha estat declarada però sense valor assignat, podem comparar-la amb el “valor” undefined. Així podem veure:

var x;
// x === undefined retornaria cert
x = 5;
// x === undefined retornaria fals

Però si el que de debò volem fer és comprovar si aquesta variable ha estat definida en algun punt del script, no podem fer aquesta comprovació, ja que al intentar cercar el símbol “x” a la seva taula de noms, ens donaria un error de referència. Llavors, podem fer-ho o no? La resposta és sí! Només cal comprovar el seu tipus: si no té un tipus definit, vol dir que no està definida dins la taula de noms. Total, que podem fer:

// typeof(y) === undefined retornaria cert
var y;
// typeof(y) === undefined retornaria fals

I ja per acabar amb nota: com fer per saber si certa variable està definida directament en l’àmbit global de l’script? Doncs bé, com bé sabem, qualsevol variable definida a l’espai global, està també definida com un camp de l’objecte global. Llavors, els que ens dediquem a la programació web, i per tant tenim l’objecte window com a objecte global, podem fer la comprovació:

window.z === undefined
// retornaria cert si la variable z no ha estat definida

Doncs res, aquest ha estat el truc del dia. Espero que us sigui útil!

Etiquetes:

Fer un comentari