Foros del Web » Programando para Internet » Javascript »

Operador +

Estas en el tema de Operador + en el foro de Javascript en Foros del Web. Hola verán estoy revisando el código fuente de una librería javascript y me topo con esta sintaxis: +[0] && Accion En acción esta agregando un ...
  #1 (permalink)  
Antiguo 19/07/2013, 16:49
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Operador +

Hola verán estoy revisando el código fuente de una librería javascript y me topo con esta sintaxis:

+[0] && Accion


En acción esta agregando un valor a un arreglo.

He estado practicando y deduzco que cuando entre los corchetes(arreglo) hay un 1 ejecuta la acción y cuando hay un 0 regresa el valor del arreglo.

Es como un if, pero me gustaría leer alguna fuente que explique el significado de ese + o si pudieran explicarme y pasarme una fuente, estaria bien jeje, gracias.
  #2 (permalink)  
Antiguo 19/07/2013, 19:08
Avatar de 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: 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.
  #3 (permalink)  
Antiguo 22/07/2013, 11:05
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Respuesta: Operador +

okz okz cuando el signo + esta con variables para que es, estoy piando mas codigo y encuentro if asi:

if( +variable || +variable ){

}

que viene haciendo variable en este caso??
  #4 (permalink)  
Antiguo 22/07/2013, 17:39
Avatar de 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: Operador +

el mismo principio se sigue aplicando. una variable no es nada más que un contenedor de un valor. de modo que si en una variable tienes el valor negativo tres, el mismo proceso aplica según las reglas del intérprete. entonces, si variable = -3...
+variable es exactamente lo mismo que
+(-3)
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 22/07/2013, 21:47
Avatar de 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: Operador +

errrr!! estaba seguro que el operador unitario positivo convertia el negativo a positivo hasta que lo comprobé. más bien el operador unitario positivo es lo opuesto al operador unitario negativo. éste último lo que hace es negar su valor. es decir, -(-3) = +3. entonces, el operador unitario positivo no tiene ningún efecto en cuanto al signo porque no niega su valor: +(-3) = -3. el único efecto que comparte ambos operadores es convertir el operando a número si éste no lo es.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: operador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:32.