Per controlar el flux adequadament, és important entendre quins tipus de valors són “veritables” i quals “falsos”. De vegades, alguns valors poden semblar una cosa però a al final acaben sent una altra.
Valors que retornen veritable (true)
'0'; // una cadena de texto cuyo valor sea 0'any string'; // cualquier cadena; // un array vacío{}; // un objeto vacío1; // cualquier número distinto a cero
Valors que retornen fals (false)
0;''; // una cadena vacíaNaN; // la variable JavaScript "not-a-number" (No es un número)null; // un valor nuloundefined; // tenga cuidado -- indefinido (undefined) puede ser redefinido
2.5.1. Variables condicionals utilitzant l’operador ternari
A vegades es vol establir el valor d’una variable depenent de certa condició. Per fer-ho es pot utilitzar una declaració if
/ else
, però en molts casos és més convenient utilitzar l’operador ternari.
L’operador ternari
// establecer a foo igual a 1 si bar es verdadero;// caso contrario, establecer a foo igual a 0var foo = bar ? 1 : 0;
L’operador ternari pot ser utilitzat sense retornar un valor a la variable, però aquest ús generalment és desaprovat.
2.5.2. Declaració switch
En lloc d’utilitzar una sèrie de declaracions if
/ else
/ else if
/ else
, de vegades pot ser útil la utilització de la declaració switch
.
Una declaració switch
switch (foo) { case 'bar': alert('el valor es bar'); break; case 'baz': alert('el valor es baz'); break; default: alert('de forma predeterminada se ejecutará este código'); break;}
Les declaracions switch
són poc utilitzades en JavaScript, pel fet que el mateix comportament és possible obtenir-creant un objecte, el qual posseeix més potencial ja que és possible reutilitzar, fer-lo servir per fer proves, etc. Per exemple:
var stuffToDo = { 'bar' : function() { alert('el valor es bar'); }, 'baz' : function() { alert('el valor es baz'); }, 'default' : function() { alert('de forma predeterminada se ejecutará este código'); }};if (stuffToDo) { stuffToDo();} else { stuffToDo();}
Més endavant es abastarà el concepte d’objectes.