Asignar variable en la declaración de condición, ¿buena práctica o no?

Hace un año me mudé de los lenguajes clásicos de OO como Java a JavaScript. El siguiente código definitivamente no se recomienda (o incluso no es correcto) en Java:

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, acabo de descubrir que puedo asignar una variable a un valor en una declaración de condición if, e inmediatamente verifico el valor asignado como si fuera booleano.

Para una apuesta más segura, generalmente separo eso en dos líneas de código, asigno primero y luego verifico la variable, pero ahora que descubrí esto, me pregunto si es una buena práctica o no a los ojos de los desarrolladores experimentados de JavaScript.

Respuestas a la pregunta(10)

Su respuesta a la pregunta