Ez az esszenciális értékek sorozatom része. Nem ezek a legizgalmasabb posztok. De fontos ismerni ezeket az alapokat, hogy megértsük, miért csinálja a JS azokat a dolgokat, amiket csinál. Segíteni fog a jobb hibakeresésben, mert tudni fogod, hogy miért nem működnek a dolgok, és segíteni fog, hogy junior fejlesztőből középhaladó fejlesztővé válj. Gyerünk! 💪
A JS-ben az értékekhez eredendően Boolean érték tartozik. Tehát szuper fontos tudni, hogy ezek az értékek mire értékelődnének ki (igaz vagy hamis), különösen, ha összehasonlításokról és feltételes értékekről van szó 🤓
Meg szoktam próbálni kitalálni, hogy milyen értékek lennének igazak. Ne csináld ezt. Ehelyett jegyezd meg, hogy melyek a Fals értékek. Ha nem szerepel a listán, akkor igaznak számít 👍
// JS Essentials: Falsy ValuesfalseundefinednullNaN0 or +0 or -0"" or '' or `` (empty string)// Everything else is truthy
# Értékek, amelyek valójában igazak
Itt van néhány mintaérték, amelyekről azt hihetted, hogy igazak (legalábbis én azt hittem), de valójában true
-re értékelődik ki. Ne feledd, ha nem szerepel a hamis listán, akkor igaz!
// All these will return **true**Boolean(); // Empty Boolean({}); // Empty {}Boolean('0'); // String containing zeroBoolean('false'); // String containing the text falseBoolean(function() {}); // Empty functionBoolean(-Infinity); // Infinity or Negative InfinityBoolean(new Date()); // Date object
# Hamis értékek használata feltételes kijelentésekben
Mivel minden érték a JS-ben booleanra (igaz vagy hamis) értékelődik. A if
utasításban lerövidíthetjük a feltételünket.
// ❌if(false === null)if(undefined === null)if(null === null)if(NaN === null)if(0 === null)if("" === null)if(value === null)// ✅ Much betterif(!value)
# Falsy érték használata a terner operátorokban
Hasonlóképpen használhatjuk a feltételünk lerövidítésére a terner operátorokban.
// ❌'' === false ? '🙂' : '🙃';// ✅ Much better'' ? '🙂' : '🙃';
# Falsy érték használata a logikai operátorokban
Itt egy érdekes eset. A ||
és a &&
segítségével visszaadhatunk egy értéket. Mindenképpen szuper fontos tudni, hogy melyik érték falsy és truthy.
||
az összehasonlítás leáll, amint egy igaz kifejezés kiértékelésre kerül
const or = '' || 'hi'; // "hi"const or = || 'hi'; //
&&
az összehasonlítás leáll, amint egy falsy kifejezés kiértékelésre kerül
const and = '' && 'hi'; // ""const and = && 'hi'; // "hi"
# Közösségi példák
# Falsy értékek használata egységteszteléshez
Jason A:
.forEach(el => expect(funcImTesting(el).to.be('my fallback')),);
Köszönöm: @jsawbrey