Tema: Operador +
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/07/2013, 19:08
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, 7 meses
Puntos: 1485
Respuesta: Operador +

buenas...
hay dos partes fundamentales para entender el código. primero el orden de prioridad de los operadores, y segundo la coherción de los operandos. en este caso particular, primero se evalua la expresión +[0]. ahí el operador unario positivo ( + ) implica que el operando es un valor positivo. lo que le sigue es un array literal con un solo elemento. un array es un tipo de objeto. como ves, este objeto no representa un valor númerico por si mismo. dada la inconsistencia de un operador númerico con un objeto, ocurre un proceso de coherción donde se intenta convertir ese array en númerico para que el operador pueda tener efecto. en este caso, el proceso consiste en transformar primero el array en un string ( '0' ) y luego se transforma en un entero ( 0 ). por tanto, la siguiente expresión es 0 && acción. finalmente sucede lo que indicas, esta operación es como si fuese un if. donde si el primer argumento evalua a falso, entonces devuelve el primer argumento. si evalua a cierto, devuelve o evalua la siguiente expresión.

ahora bien, tenga cuidado si el array contiene más de un elemento ya que en el proceso de coherción el string resultante podría ser algo como '0,1' para el array [0,1]. al no ser un string válido para ser transformado a números, entonces el intérprete genera el valor NaN.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.