Logikai
A Booleans egy primitív adattípus, amelyet általában a számítógépes programozási nyelvekben használnak. Definíció szerint a logikai értéknek két lehetséges értéke van: true
vagy false
.
A JavaScriptben gyakran implicit típusú kényszerítés van a logikai elemre. Ha például van egy if utasítás, amely ellenőriz egy bizonyos kifejezést, akkor ezt a kifejezést logikai értékre kényszerítik:
const a = 'a string'; if (a) { console.log(a); // logs 'a string' }
Csak néhány érték kényszerül hamisra:
- hamis (nem igazán kényszerítve, mivel már hamis)
- nulla
- meghatározatlan
- NaN
- 0
- "" (üres karakterlánc)
Minden más értéket igazra kényszerítenek. Ha egy értéket logikai értékre kényszerítenek, ezt „hamisnak” vagy „igazságnak” is nevezzük.
Az ilyen típusú kényszer alkalmazásának egyik módja az vagy ( ||
) és ( &&
) operátorok használata:
const a = 'word'; const b = false; const c = true; const d = 0 const e = 1 const f = 2 const g = null console.log(a || b); // 'word' console.log(c || a); // true console.log(b || a); // 'word' console.log(e || f); // 1 console.log(f || e); // 2 console.log(d || g); // null console.log(g || d); // 0 console.log(a && c); // true console.log(c && a); // 'word'
Amint láthatja, az or operátor ellenőrzi az első operandust. Ha ez igaz vagy igaz, akkor azonnal visszaadja (ezért kapjuk az első esetben a "szót", a második esetben pedig az igazat). Ha nem igaz vagy igaz, akkor a második operandust adja vissza (ezért kapjuk a harmadik esetben a „szót”).
Az és operátorral hasonló módon működik, de a „és” igazakhoz mindkét operandusnak igaznak kell lennie. Tehát mindig visszaadja a második operandust, ha mindkettő igaz / igaz, különben hamis. Ezért a negyedik esetben igazak leszünk, az utolsó esetben pedig a „szó”.
A logikai objektum
Van egy natív JavaScript objektum is, amely körbevesz egy értéket. Az első paraméterként átadott értéket szükség esetén logikai értékekké konvertáljuk. Ha az érték elmarad, 0, -0, null, false, NaN, undefined vagy az üres karakterlánc (""), akkor az objektum kezdeti értéke false. Az összes többi érték, beleértve bármely objektumot vagy a „hamis” karakterláncot, objektumot hoz létre, amelynek kezdeti értéke true.
Ne keverje össze az igaz és hamis primitív logikai értékeket a logikai objektum igaz és hamis értékeivel.
További részletek
Bármely objektum, amelynek értéke nem meghatározatlan vagy nulla, beleértve a hamis logikai objektumot is, igaznak minősül, ha egy feltételes utasításnak adják át. Ha igaz, akkor ez végrehajtja a függvényt. Például a következő feltétel, ha az utasítás igaznak bizonyul:
const x = new Boolean(false); if (x) { // this code is executed }
Ez a viselkedés nem vonatkozik a logikai primitívekre. Például a következő feltétel, ha az utasítás értéke hamis:
const x = false; if (x) { // this code is not executed }
Ne használjon logikai objektumot egy nem logikai érték konvertálásához logikai értékké. Ehelyett használja a Boolean funkciót a feladat végrehajtásához:
const x = Boolean(expression); // preferred const x = new Boolean(expression); // don't use
Ha bármely objektumot megad, beleértve egy logikai objektumot is, amelynek értéke hamis, mint logikai objektum kezdeti értékét, az új logikai objektum értéke true.
const myFalse = new Boolean(false); // initial value of false const g = new Boolean(myFalse); // initial value of true const myString = new String('Hello'); // string object const s = new Boolean(myString); // initial value of true
Ne használjon logikai objektumot logikai primitív helyett.