Así que estoy trabajando en este proyecto, que tiene un código que escribió otra persona, y encontré esta operación ternaria de JavaScript para asignar una variable. No están disponibles para que yo pregunte al respecto. Entiendo la primera mitad, pero...
variable = statement ? option1 : option2 ? option2 : option1
sería simple para mí si fuera solo
variable = statement ? option1 : option2
pero la segunda mitad de la declaración es simplemente desconcertante para mí. ¿Puede alguien explicar qué está pasando aquí?
variable = statement ? option1 : option2 ? option2 : option1es, espaciado:
variable = statement ? option1 : option2 ? option2 : option1Si declaración, opción1.
De lo contrario, si la opción2, la opción2.
De lo contrario, opción 1.
Otra forma de hacerlo es:
if (statement) { variable = option1; } else if (option2) { variable = option2; } else { variable = option1; }Una forma más clara de implementar la misma lógica sería:
if (!statement && option2) { variable = option2; } else { variable = option1; }o
variable = (!statement && option2) ? option2 : option1;No es el mísmo.
variable = statement ? option1 : option2 ? option2 : option1
sería el equivalente de -
if (statement) { variable = option1; } else { if (option2) { variable = option2; } else { variable = option1; } } Mientras
variable = statement ? option1 : option2
sería equivalente a -
if (statement) { variable = option1; } else { variable = option2; } Como se puede ver más claramente aquí, en el segundo ejemplo, si la statement es false , la variable siempre será igual a la option2 .
Pero en el primer ejemplo, aún puede ser igual a la option1 en algunos casos.