Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/12/2010, 18:23
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: No entiendo esta sintaxis

a nivel técnico, los paréntesis exteriores son para modificar el orden de la operación puesto que los operadores tienen un orden de precedencia. o sea, es como en la álgebra, para resolver un problema hay que seguir un orden específico: comienzas por paréntesis más internos, luego exponentes, multiplicación o división, y suma o resta. en la programación es el mismo principio. como dijo @cronos, los paréntesis internos estan presentes para mayor legibilidad.

¿qué sucede cuando se omite los paréntesis externos? primero tienes que comprender el tema de las precedencias. utilizando el mismo problema pero más simplificado.
Código:
// omitiendo parentesis ;

var string = "some string ";
string + variable == null ? "empty": "date string";
en la segunda línea hay tres operadores: + (concatenación), == (igualdad) y ?: (ternario). en el orden mencionado, el operador de la izquierda tiene mayor prioridad que el de la derecha. de modo que la evaluación vendría siendo algo similar a lo siguiente.
Código:
// el color rojo indica la operacion a realizar y en negrita el resultado ;

// problema original ;
// concatenar string con la variable ;
string + variable == null ? "empty": "date string";

// comparar la igualdad de la cadena concatenada con null ;
string_variable == null ? "empty": "date string";

// resolver el ternario de acuerdo al boolean ; 
// genera false porque un sting jamas es igual a null, 
// sea un string vacio o lleno ;
false? "empty": "date string";

// false siempre devuelve la segunda expresion del ternario ;
"date string" 
con los parentesis, el orden de la operacion cambia y por tanto el resultado. te lo dejo para que lo analices.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 07/12/2010 a las 19:58 Razón: error de redaccion ^_^