Sono passato un anno fa dai classici linguaggi OO come Java a JavaScript. Il codice seguente è decisamente sconsigliato (o addirittura non corretto) in 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;
}
Fondamentalmente ho appena scoperto che posso assegnare una variabile a un valore in un'istruzione if condition e controllare immediatamente il valore assegnato come se fosse booleano.
Per una scommessa più sicura, di solito lo separo in due righe di codice, prima assegno quindi controllo la variabile, ma ora che ho trovato questo, mi chiedo solo se è una buona pratica o meno agli occhi degli sviluppatori JavaScript esperti?
"The following code is definitely not recommended (or event not correct) in Java..."È corretto anche in JavaScript? Perché, per quanto posso vedere, restituisci un intero (return parseInt(...)) sedayNumber != -1è vero, ma un booleano se è falso.