Atribuir variável na declaração de condição if, boas práticas ou não?

Há alguns anos, mudei de linguagens OO clássicas, como Java para JavaScript. Definitivamente, o código a seguir não é recomendado (ou até não está correto) em 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;
}

Basicamente, acabei de descobrir que posso atribuir uma variável a um valor em uma instrução de condição if e verificar imediatamente o valor atribuído como se fosse booleano.

Para uma aposta mais segura, costumo separar isso em duas linhas de código, atribuir primeiro e depois verificar a variável, mas agora que descobri isso, estou me perguntando se é uma boa prática ou não aos olhos de desenvolvedores experientes em JavaScript?

questionAnswers(10)

yourAnswerToTheQuestion