Давайте немного разберем этот код и поговорим о том, что он делает
var tips = [];
var bills = [124, 48, 264];
В этой части объявляются две переменные в глобальной области видимости, которые будут доступны любым функциям как для чтения, так и для записи (важно - закрытие Google JS).
function tipCalc(bills, tips){
switch(bills){
Вы запустили функцию, которая вызывает переключатель для оценки стоимости счетов. Поскольку вы передаете bills[0]
, он будет оценивать счета [0] (124). Он также принимает второй параметр с именем tips, который не определен, поскольку при вызове функции второй аргумент не передается.
case bills < 50:
tips[0] = bills[1] * 0.2;
break;
Эта часть сломана. Если бы оно было изменено на оператор if
, оно получило бы значение false.
case bills > 50:
tips[1] = bills[0] * 0.5;
break;
Также сломан. Если изменить его на оператор if
, он получит значение true и будет выполнен, но он будет выполнять операцию с неопределенным значением. Если бы у вас не было второго параметра с именем tips
, вы должны установить глобальный tips
на 62.
default:
console.log('no tips left.');
}
Эта часть должна выполняться в настоящее время, потому что она единственная, которая может быть верной, если два других случая структурированы неправильно.
return tips;
}
Возвращает неопределенное значение, поскольку подсказки (в рамках самой функции) начинались как неопределенные и не были изменены.
tips = tipCalc(bills[0]);
console.log(tips);
enter code here
Разбивает всю программу, должен быть комментарий с //
в начале.