Confundido por la syntax abreviada: x> 0? 1: -1;

¿Qué significa la siguiente syntax de Javascript? Por favor describe la syntax completa:

var x = 0; x > 0 ? 1 : -1; // confused about this line alert(x); 

Eso por sí solo no significa nada. Advertirá el valor de x , que es 0, y eso es todo. La segunda statement no tiene sentido a less que la asignes a algo. Sin embargo, si hubiera hecho esto:

 var x=0; var y = x > 0 ? 1 : -1; alert(y); 

Hubieras obtenido -1.

El operador condicional , es una abreviatura de las declaraciones IF, básicamente dice:

Afirma si x > 0 . Si es así, asigne 1. Si no, asigne -1.

O en una forma más general:

 CONDITION ? VALUE_IF_TRUE : VALUE_IF_FALSE; 

Dónde:

  • CONDITION : puede ser cualquier cosa que se evalúe como booleana (incluso después de malabarismos de tipo).
  • VALUE_IF_TRUE – valor que debe devolverse en caso de que CONDITION se haya confirmado como TRUE .
  • VALUE_IF_FALSE : valor que se devolverá en caso de que se haya VALUE_IF_FALSE CONDITION en FALSE .

Ese es el operador condicional . Es un operador ternario porque tiene tres operandos. A menudo se lo conoce como el operador ternario, pero esa terminología es bastante flexible ya que cualquier operador con tres operandos es un operador ternario. Da la casualidad de que es el único operador ternario comúnmente utilizado.

Qué significa eso? La expresion

 a?b:c 

evalúa a b si a evalúa como verdadero; de lo contrario, la expresión se evalúa como c .

este es un operador ternario (¿el?)

Piense en ello como una statement IF.

la statement antes del '?' es la condición de tu statement if. Inmediatamente lo que sigue antes del ':' es lo que se ejecutará / se asignará si el enunciado es verdadero. Después de ':' es lo que se ejecutará / se asignará si la statement es falsa.

Sin embargo, su código alertará 0 porque no está asignando nada a su operador ternario.

Básicamente, tu código también podría decir.
x = 0; alert(x); // this would alert 0

necesita revisar esto para:
x = 0; var y = x > 0 ? 1 : -1; alert(y);

Será -1. Esto se conoce como el operador ternario .

Básicamente se expande a esto (suponiendo que quisieras poner x= al comienzo de la segunda línea).

 if(x>0){ x = 1 } else { x = -1 } 
    Intereting Posts