[[oktatas:web:javascript|< JavaScript]] ====== JavaScript - Kérdőjel operátor ====== * **Szerző:** Sallai András * Copyright (c) 2023, Sallai András * Szerkesztve: 2023, 2024 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Hármas operátor ===== Az hármas operátor egy három elemből álló kifejezést alkot. állítás ? érték_ha_igaz : érték_ha_hamis A hagyományos if...else egy alakjának is tekinthető. Példa: const age = 23; const message = age >= 18 ? 'Felnőtt' : 'Kiskorú'; console.log(message); // Felnőtt Példa 2: const isAdmin = true; const accessLevel = isAdmin ? 'Teljes hozzáférés' : 'Korlátozott hozzáférés'; console.log(accessLevel); // Teljes hozzáférés ===== Opcionális láncolás ===== 2020-ban vezették be az opcionális láncolás funkciót. Ha nem létező objektumra hivatkozunk ez futás közben hibát vált ki. A "?" beszúrásával ellenőrizhetjük a hivatkozást. const employee = { city: 'Szeged', salary: 357 } console.log(employee.name?.length) ===== Nulla összevonás ===== A nulla összevonás, angolul: **Nullish Coalescing**. Bizonyos esetekben alapértelmezett értéket használunk. Ez a "||" operátorral tehetjük meg. const employee = { name: undefined || 'névtelen', city: 'Szeged', salary: 357 } console.log(employee.name) Ha az viszont szándékosan 0 vagy '' (üres sztring) amit szeretnénk beállítani, váratlan viselkedést tapasztalhatunk. Tegyük fel, hogy a következő példában szereplő Nagy Ernő, nem kap fizetést, ezért 0, azaz nulla értéket szeretnénk beállítani. const employee = { name: 'Nagy Ernő', city: 'Szeged', salary: 0 || 'nincs beállítva' } console.log(employee.salary) Ha kiíratjuk 0-t kell kapjunk, hiszen be van állítva, a fizetése 0. De ha kiíratjuk nem 0-át kapunk. Használjuk a ?? operátort: const employee = { name: 'Nagy Ernő', city: 'Szeged', salary: 0 ?? 'nincs beállítva' } console.log(employee.salary) ===== Alapértelmezett érték ===== const username = null; const currentUser = username || 'Guest'; console.log(currentUser); // Guest function greet(name) { const userName = name || 'Ismeretlen'; console.log(`Hello, ${userName}!`); } greet(); // Hello, Ismeretlen! greet('John'); // Hello, John!