Loogiset operaattorit && ja ||

  • &&-operaattori ottaa kaksi arvoa

    • Jos vasen puoli on falsy, operaattori palauttaa vasemman puolen arvon sellaisenaan

    • Jos vasen puoli on truthy, operaattori palauttaa oikean puolen arvon sellaisenaan

  • ||-operaattori ottaa kaksi arvoa

    • Jos vasen puoli on falsy, operaattori palauttaa oikean puolen arvon sellaisenaan

    • Jos vasen puoli on truthy, operaattori palauttaa vasemman puolen arvon sellaisenaan

  • Truthy- ja falsy-testaus yhdistetään usein ja- ja tai-operaatioihin

    • Syy on sama, jotta koodi pysyy lyhyenä

  • Normaalien vertailujen lisäksi näitä hyödynnetään objektin propertyn arvon lukemisessa, jos on epävarmaa, onko muuttujassa ylipäänsä objekti, vai onko se esimerkiksi undefined (undefined-arvolta ei saa suoraan kysyä propertyä) ja oletusarvojen antamisessa.

// `henkilö`-objektista halutaan lukea nimi omaan muuttujaan. Jos on
// epävarmaa, onko `henkilö`-muuttujan arvo objekti vai esimerkiksi
// undefined, voidaan käyttää &&-operaattoria.
const nimi = henkilö && henkilö.nimi;
if (nimi) {
  // Tänne mennään, jos `henkilö`` on truthy ja sillä on "nimi"-property,
  // joka sekin on truthy. Oletetaan, että henkilö on objekti, eikä
  // esimerkiksi 123, joka myöskin olisi truthy. Jos nimi on '' (tyhjä
  // teksti), tänne ei mennä, koska tyhjä teksti on falsy.
  console.log('Henkilön nimi on:', nimi);
}

// ||-operaattoria voidaan käyttää default-arvojen antamiseen. Jos nimeä
// ei ole, tulostetaan: 'Henkilön nimi on: (ei nimeä)'.
console.log('Henkilön nimi on:', nimi || '(ei nimeä)');

Loogiset operaattorit MDN:ssä

Last updated