Há um ano, mudei de linguagens OO clássicas, como Java, para JavaScript. O código a seguir definitivamente não é recomendado (ou mesmo incorreto) 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 da condição if e verificar imediatamente o valor atribuído como se fosse booleano.
Para uma aposta mais segura, normalmente separo isso em duas linhas de código, atribuo primeiro e depois verifico a variável, mas agora que descobri isso, estou apenas me perguntando se é uma boa prática ou não aos olhos dos desenvolvedores de JavaScript experientes.
"The following code is definitely not recommended (or event not correct) in Java..."Está correto em JavaScript? Porque, pelo que eu posso ver, você retorna um inteiro (return parseInt(...)) sedayNumber != -1for verdadeiro, mas um booleano se for falso.