Ошибка в вашем коде - это просто использование вами знака равенства = вместо логического оператора == (равно)
https://www.w3schools.com/js/js_comparisons.asp
Если вы переписываете свой код какниже он будет работать:
function (vegetarian) {
// this is you set orderPizza is vegetarian
let orderPizza = vegetarian;
// Comparison operators is '==' or '===' not '='. '=' is Assignment Operators
if (orderPizza == vegetarian) {
return ("Cheese Pizza!");
} else {
return ("Pepperoni Pizza!");
}
};
// this is you set orderPizza is vegetarian not call function
// you can call function with name and parameter
// example: let newOrder = orderPizza(true)
let newOrder = vegetarian
console.log(newOrder)
С точки зрения вопроса и хорошего ответа на него:
function orderPizza (vegetarian){
if (vegetarian == true){
return 'cheese pizza'
}
return 'pepperoni pizza'
}
order1 = orderPizza(true)
order2 = orderPizza(false)
console.log(order1)
// will log 'cheese pizza'
console.log(order2)
// will log 'pepperoni pizza'
примечание: вам на самом деле не нужно использовать другое, потому что код будетдостигать
return 'pepperoni pizza'
только если выражение if не находит переменную равной true.Функция может вернуться только один раз.Вы можете думать о возврате как о «ответе» функции.
Вы можете написать
if (vegetarian == true) {
или
if (vegetarian) {
, потому что выражение if будет оценивать содержимоеиз скобок.Если вегетарианец «правдив» (https://www.w3schools.com/js/js_booleans.asp), то вам не нужно сравнивать его с «истиной».
Однако в смысле строгого равенства сравнение подтвердит, что его значение истинно, а недругое истинное значение, например строка.