Google

tunait.com » Javascript » Operadores condicionales


Operador condicional

En ocasiones necesitamos usar un condicional simple que evalúe una sola sentencia.

	if(m < 0){
	   m = 0;
	}
	else{
	   m++;
	}

Las condiciones con una sola sentencia pueden omitir las llaves

	if(m < 0)
	   m = 0;
	else
	   m++;

y podemos ponerlo en una sola línea

if(m < 0) m = 0; else m++;

Sin embargo para estos casos nos puede venir muy bien utilizar el operador condicional o ternario que tiene la peculiaridad de ser el único operador que usa tres operandos

Alguna expresión ? si verdadero, esto : si no es verdadero, esto otro;

Funciona de la siguiente manera:
Se evalúa una sentencia; si devuelve verdadero se evalúa entonces la sentencia que queda a continuación del operador ? y a la izquierda del operador : y si no es verdadero se evalúa la sentencia que queda a la derecha del operador :

m < 0 ? m = 0 : m++;

Generalmente la sentencia a evaluar si es verdadera o no se usa con un condicional como en el ejemplo.

(condición: m es menor que cero ¿es cierto?) ? (si es verdadero m vale entonces cero) : (si es falso m incrementa su valor en 1)

pero no es necesario que la expresión a evaluar sea una condición. Basta con que devuelva verdadero o falso (true o false)

verdadero = true;
verdadero ? alert('es verdadero') : alert('no es verdadero');

Recordemos que no sólo true evalúa como verdadero ni false evalúa sólo como falso.
Los valores booleanos se evalúan como falso si devuelven:

Una cadena vacía ('')
0 ó -0
NaN (Not A Number)
Undefined
null
false


Los valores booleanos se evalúan como verdadero si devuelven:

Un objeto existente
Una cadena no vacía
Un valor numérico distinto a 0 ó a -0
true

En el ejemplo anterior

verdadero = true;
verdadero ? alert('es verdadero') : alert('no es verdadero');

obtendríamos el mismo resultado si

verdadero = 1
verdadero = 'leporcias'
<div id="verdadero">

Podemos usar también el operador condicional para asignar directamente el valor devuelto a una variable.

En vez de m < 0 ? m = 0 : m++;

Podemos pedirle m = m < 0 ? 0 : m++;

var edad = 45;
paco = edad <= 18 ? 'Menor de edad' : 'Mayor de edad';

También podemos usarlo para pasar argumentos a funciones

alert(edad <= 18 ? 'Menor de edad' : 'Mayor de edad');

Como se puede ver el uso del operador condicional puede ser muy útil a la hora de darle algunos usos que no podríamos aplicar directamente con la sentencia if then y nos puede ahorrar bastantes líneas de código.

 


Copyright © 2006 www.tunait.com todos los derechos reservados