2010-01-27 15 views
6

Estoy intentando actualizar mis conocimientos de programación JavaScript (o digamos que mi período de conocimientos de programación:))la semántica de JavaScript

así que estoy tratando de entender algunas semántica:

en la primera línea lo que hace el "? " significar, así como el signo menos "-Distancia"

en la segunda línea de lo que significa '+ =' o '-? =" significa

el.css(ref, motion == 'pos' ? -distance : distance) 

animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; 

gracias

+1

desea mejorar sus habilidades de programación? Después de que entiendas lo que hace, reescríbelo de una manera ** legible ** que no confunda el próximo codificador. (Por cierto, parece una completa tontería - está jugando con +/- de un número, y luego lo resta o lo agrega, parece inútil) – Kobi

+0

sí, como esto, 'el.css (ref, -1 * ('pos' === movimiento) * distancia) ',: P (solo una broma) –

+0

@Dan: quieres' (1 - ('pos' === movimiento) * 2) * distancia'. – kennytm

Respuesta

5

a ? b : c significa "si ba es cierto, c de lo contrario ".

-a significa a, negated.

a -= b y a += b significan a = a - b y a = a + b respectivamente. Sin embargo, en su ejemplo, estos operadores no están realmente presentes en el código, solo son cadenas de texto que el código está manipulando.

+0

En su ejemplo, '- =' y '+ =' son en realidad cadenas. –

+0

@Brian: sí, acabo de ver que :) – moonshadow

+1

hmm ... '- =' y '+ =' como cadenas ... Huelo un 'eval' en algún lugar;) –

1

es el ternario? operador

es igual

if(motion == 'pos') { return -distance; } else { return distance; } // - is just negating the distance value 
1
  1. (a ? b : c) significa "volver b si a es cierto, y volver c si a es falso."
  2. El signo menos significa negación.
  3. '+=' y '-=' son simplemente cadenas.
0

Lo que usted llama 'semántica' es en realidad la sintaxis del lenguaje de programación. Es un conocimiento básico que se puede adquirir fácilmente buscando en Google o mirando Wikipedia.

Aquí está el artículo de JavaScript en Wikipedia, y aquí están las respuestas en su first (conditional operator section), second (Arithmetic) y third (Assignment) preguntas dentro del mismo artículo. RTFM por favor.

0

Aquí hay un enlace que responderá al? pregunta (? es una operación de evaluación abreviada). http://www.w3schools.com/JS/js_comparisons.asp

+ = se utiliza para incrementar un valor (también abreviada) por ejemplo

i = i + 1; is the same as i += 1; 

lo mismo se aplica a - =

+0

técnicamente Supongo que esto es correcto, pero' ' - = '' no es lo mismo que simple '- =' (es una cadena enviada a la función css de jQuery, pero está haciendo esto detrás de escena, así que no te voté) –