Título: [Pregunta]: ¿Qué significa esto (javascript) Publicado por: Leguim en 1 Enero 2020, 03:20 am Código
Título: Re: [Pregunta]: ¿Qué significa esto (javascript) Publicado por: AlbertoBSD en 1 Enero 2020, 03:24 am Operador Ternario
Valor es igual a la evaluación boleana de value == undefined, si es verdadero te devuelve la cadena vacia '', si no lo es te devuelve el valor orginal. Es para que value siempre tenga un valor valido, valga la redundancia. imagina el siguiente ejemplo: Código Se evalua si "a" es mayor que "b", Si es verdadero largest se iguala a la variable "a", si no se igual a la variable "b" basicamente siempre es el mismo formato Código: variable = (condición) ? (valor si verdadero) : (valor si falso) ; Saludos! Título: Re: [Pregunta]: ¿Qué significa esto (javascript) Publicado por: #!drvy en 1 Enero 2020, 03:24 am Es un operador ternario.
https://es.wikipedia.org/wiki/Operador_ternario Básicamente esta haciendo esto: Código
Este en concreto creo que tiene 0 sentido porque se repite mucho pudiendo hacer: Código
https://es.wikipedia.org/wiki/Evaluaci%C3%B3n_de_cortocircuito Saludos Título: Re: [Pregunta]: ¿Qué significa esto (javascript) Publicado por: @XSStringManolo en 1 Enero 2020, 03:54 am Es un operador ternario. No es lo mismo drvy. Puede que a value se le asignara false de valor, 0 o null. Todos ellos equivalen a evaluación negativa y con tu código cambiarías su valor de value 1-1 a ''https://es.wikipedia.org/wiki/Operador_ternario Básicamente esta haciendo esto: Código
Este en concreto creo que tiene 0 sentido porque se repite mucho pudiendo hacer: Código
https://es.wikipedia.org/wiki/Evaluaci%C3%B3n_de_cortocircuito Saludos Lo que trata el código es de comprobar si un valor se definió. Que por cierto, tampoco es correcto el código. Le falta un = porque se hace conversión de tipos. value = "undefined" no es lo mismo que value = undefined; En cambio en ese código de ejemplo se convierten para comparar. Tampoco es muy eficiente. Para que reasignar un valor si ya lo tiene? Qué pasa si value es un objeto enorme del que depende todo el programa? value === undefined ? value=0 : 0 ; Si value contiene el dato primitivo undefined ? asígnale un valor; en caso contrario no hace nada. En este caso casi que es mejor usar un if: if (value === undefined) value = 0; Se entiende mejor, menos código y más eficiente. Ojo, no sabemos que es value, puedeser un método o una función entre otras cosas. Cundo haces un return de nada dentro de una función o método, se retorna undefined. Asique podría utilizarse para comprobar si por ejemplo una función recibió argumentos/parámetros. Código
Título: Re: [Pregunta]: ¿Qué significa esto (javascript) Publicado por: #!drvy en 1 Enero 2020, 04:21 am Citar No es lo mismo drvy. Puede que a value se le asignara false de valor, 0 o null. Todos ellos equivalen a evaluación negativa y con tu código cambiarías su valor de value 1-1 a '' Cierto. Eso si, señalar que null también se evalúa como undefined en este caso particular (por lo que comentas de la conversión). Citar En este caso casi que es mejor usar un if: if (value === undefined) value = 0; Seria lo más correcto si, aunque ese modo de presentarlo es muy feo :xD Saludos Título: Re: [Pregunta]: ¿Qué significa esto (javascript) Publicado por: Leguim en 1 Enero 2020, 06:28 am Les agradezco sus explicaciones, la función recibía una cadena...
Muchas gracias... Título: Re: [Pregunta]: ¿Qué significa esto (javascript) Publicado por: @XSStringManolo en 1 Enero 2020, 08:22 am Cierto. Eso si, señalar que null también se evalúa como undefined en este caso particular (por lo que comentas de la conversión). También comentar que puede ser que se intente acceder a un objeto a través de su referencia y se compare value a Object object en vez de a la propiedad o valor referenciado. Para esos casos hay que usar instanceof.Seria lo más correcto si, aunque ese modo de presentarlo es muy feo :xD Saludos He estado probando y buscando cosas for fun. Bites sin contar identación y espacios no imprescindibles. value = value == undefined ? '' : value; 256bits if (value === undefined) value = 0; 232bits if (value == void 0) value=0; 200bits if (value == [][[]]) value=0; 192bits value==[][[]]?value=0:0; 192bits value==[].$?value=0:0 168bits if(i==[].$)i=0; 120bits i==[].$?i=0:0 104bits De 40 caracteres a 13. No parece mucho hasta que haces copia y pega 10 veces en varios condicionales, añades más expresiones al condicional, etc. Código
|