Me mudé hace un año de los lenguajes OO clásicos, como Java a JavaScript. es, sin duda no se recomienda el siguiente código (o incluso no corrige) en Java:Asignar variable en la declaración de condición de condición, ¿buenas prácticas o no?
if(dayNumber = getClickedDayNumber(dayInfo))
{
alert("day number found : " + dayNumber);
}
function getClickedDayNumber(dayInfo)
{
dayNumber = dayInfo.indexOf("fc-day");
if(dayNumber != -1) //substring found
{
//normally any calendar month consists of "40" days, so this will definitely pick up its day number.
return parseInt(dayInfo.substring(dayNumber+6, dayNumber+8));
}
else return false;
}
Básicamente, sólo descubrí que puedo asignar una variable a un valor en un estado de condición si, y comprobar inmediatamente el valor asignado como si es booleano
Para una apuesta más segura, generalmente lo separo en dos líneas de código, primero asigno y luego verifico la variable, pero ahora que encontré esto, me pregunto si es una buena práctica o no a los ojos de un JavaScript experimentado. desarrolladores?
' "definitivamente no se recomienda el siguiente código (o evento no es correcto) en Java ..."' ¿Es incluso correcta en JavaScript? Porque, hasta donde puedo ver, devuelves un entero ('return parseInt (...)') si 'dayNumber! = -1' es verdadero, pero un boolean si es falso. –