Front-End/javascript/chapter09/shortCircuitOperators.js

67 lines
2.2 KiB
JavaScript

const restauraunt = {
name: "Classico Italiano",
location: "Via Angelo Tavanti 23, Firenze, Italy",
categories: ["Italian", "Pizzeria", "Vegetarian", "Organic"],
starterMenu: ["Focaccia", "Bruschetta", "Garlic Bread", "Caprese Salad"],
mainMenu: ["Pizza", "Pasta", "Risotto"],
order: function (starterIndex, mainIndex) {
return [this.starterMenu[starterIndex], this.mainMenu[mainIndex]];
},
orderDelivery: function ({
starterIndex = 1,
mainIndex = 0,
time = "20:00",
address,
}) {
console.log(
`Order recieved! ${this.starterMenu[starterIndex]} and ${this.mainMenu[mainIndex]} will be delivered to ${address} at ${time}`
);
},
openingHours: {
thu: {
open: 12,
close: 22,
},
fri: {
open: 11,
close: 23,
},
sat: {
open: 0, // Open 24 hours
close: 24,
},
},
};
console.log("-------- OR --------");
//short circuiting "wenn ein Wert "richtig" ist (mehr als 0, nicht leer Wort, nicht undefined oder null )", dann wird dies Wert rausgegeben
// wird der erste richtige Wert (von links nach recht evaluirt) rausgegeben
console.log(0 || 5);
console.log("" || "jonas");
console.log(true || 0);
console.log(undefined || null);
// in unserem Fall wird der "Hello" Wert rausgeben, weil das der erste Wert ist, der nicht false ist
console.log(undefined || 0 || "" || "Hello" || 23 || null);
restauraunt.numGuests = 0;
// wenn die Anzahl der Gäste "restauraunt.numGuests" null ist, dann wird der Wert 10 rausgegeben,
// wenn es mehr als ein Gast sein wird, dann wird der Anzahl der Gäaste rausgegeben
const guests1 = restauraunt.numGuests ? restauraunt.numGuests : 10;
console.log(guests1);
//
const guests2 = restauraunt.numGuests || 10;
console.log(guests2);
console.log("-------- AND --------");
// short circuiting "wenn ein Wert "falsh" ist (0, leer Wort, undefined oder null )", dann wird dies Wert rausgegeben
// wird der erste falsche Wert (von links nach recht evaluirt) rausgegeben
console.log(0 && 5);
console.log("Hello" && 23 && undefined && 23 && null);
if (restauraunt.orderPizza) {
console.log(restauraunt.orderPizza("mushrooms", "spinach"));
}
restauraunt.orderPizza && restauraunt.orderPizza("mushrooms", "spinach");