Rok temu przeniosłem się z klasycznych języków OO, takich jak Java, na JavaScript. Poniższy kod zdecydowanie nie jest zalecany (lub nawet nieprawidłowy) w Javie:
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;
}
Zasadniczo właśnie dowiedziałem się, że mogę przypisać zmienną do wartości w instrukcji warunku if i natychmiast sprawdzić przypisaną wartość tak, jakby była logiczna.
Dla większego bezpieczeństwa zwykle dzielę to na dwie linie kodu, najpierw przypisuję, a potem sprawdzam zmienną, ale teraz, kiedy to znalazłem, zastanawiam się tylko, czy jest to dobra praktyka w oczach doświadczonych programistów JavaScript?
"The following code is definitely not recommended (or event not correct) in Java..."Czy jest to poprawne w JavaScript? Ponieważ, o ile widzę, zwracasz liczbę całkowitą (return parseInt(...)), jeślidayNumber != -1jest prawdziwe, ale wartość logiczną, jeśli jest fałszywe.