Год назад я перешел с классических объектно-ориентированных языков, таких как Java, на JavaScript. Следующий код определенно не рекомендуется (или даже неправильно) в 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;
}
По сути, я только что обнаружил, что могу присвоить переменной значение в операторе условия if и немедленно проверить присвоенное значение, как если бы оно было логическим.
Для большей безопасности я обычно разделяю это на две строки кода, сначала назначаю, а затем проверяю переменную, но теперь, когда я это нашел, мне просто интересно, является ли это хорошей практикой или нет в глазах опытных разработчиков JavaScript?
"The following code is definitely not recommended (or event not correct) in Java..."Это вообще правильно в JavaScript? Потому что, насколько я понимаю, вы возвращаете целое число (return parseInt(...)), еслиdayNumber != -1оно истинно, и логическое значение, если оно ложно.