Java script, как сделать так чтобы срабатывали все условия if else?
все грехи данного кода:

function calculateFoodOrder(numAnimals, avgFood) {
  var numAnimals = 10;
  var avgFood = 3;
  if (numAnimals < 0) {
    return -1;
  } else if (numAnimals = String) {
    return -1;
  } else if (avgFood < 0) {
    return -1;
  } else if (avgFood = String) {
    return -1;
  } else {
    return numAnimals * avgFood;
  }
}

console.log(calculateFoodOrder());


= - оператор присваивания, не сравнения.
чтобы сравнить A с B, вы должны использовать один из операторов сравнения:
==, ===, <=, >=, <, > . . .

если вы хотите проверить, является ли передаваемое параметру значение строкой, вы должны:
1. убрать вышеобъявленные переменные с помощью var
2. проверить, является ли значение параметра numAnimals строкой - это делается с помощью оператора typeof:
if (typeof numAnimals === "string") { return . . . }

чтобы правильно вызвать функцию с таким кодом и получить правильный ответ - вам нужно передать в круглые скобки значения, которые присвоятся параметрам функции (numAnimals и avgFood):
console.log(  calculateFoodOrder(значение1, значение2)  ) 

console.log(  calculateFoodOrder(550, 241)  ) // пример
не забывайте, что, если вы передаёте параметру функции строку - вы должны обрамить её в один из доступных видов кавычек (``, '', "").


Зачем проверять на строку? А если будет передан массив или буль?
Если вы ожидаете число, то и проверять нужно на число.

Для улучшения читаемости кода, можно написать отдельную функцию валидации аргумента.

function validArgument(n) {
  return typeof n === 'number' && n >= 0;
}

function calculateFoodOrder(numAnimals, avgFood) {
  if (validArgument(numAnimals) && validArgument(avgFood)) {
    return numAnimals * avgFood;
  }

  return -1;
}