Tartalomjegyzék

< JavaScript

JavaScript - Kérdőjel operátor

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!