Dette er en del af min serie af essentielle elementer. Det er ikke de mest spændende indlæg. Men det er vigtigt at kende disse grundlæggende elementer for at forstå, hvorfor JS gør de ting, det gør. Det vil hjælpe dig med at debugge bedre, fordi du vil vide, hvorfor tingene ikke virker, og hjælpe dig med at gå fra juniorudvikler til mellemudvikler. Let’s go! 💪
Værdier i JS har en iboende boolsk værdi forbundet med. Så det er super vigtigt at vide, hvad disse værdier ville blive evalueret til (sandt eller falsk), især når det kommer til sammenligninger og conditionals 🤓
Jeg bruger til at forsøge at finde ud af, hvilke værdier der ville være sande. Det skal du ikke gøre. I stedet skal du huske, hvilke værdier der er Falsy. Hvis det ikke er på listen, betragtes det som sandt 👍
// JS Essentials: Falsy ValuesfalseundefinednullNaN0 or +0 or -0"" or '' or `` (empty string)// Everything else is truthy
# Værdier, der faktisk er sandt
Her er nogle eksempler på værdier, som du måske troede var sandt (det gjorde jeg i hvert fald), men det evaluerer faktisk til true
. Husk, at hvis den ikke er på listen over falske, er den sand!
// 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
# Brug af falsk værdi i betingede udsagn
Da alle værdier i JS evalueres til en boolsk værdi (sand eller falsk). Vi kan forkorte vores betingelse i if
-erklæringen.
// ❌if(false === null)if(undefined === null)if(null === null)if(NaN === null)if(0 === null)if("" === null)if(value === null)// ✅ Much betterif(!value)
# Brug af Falsy-værdi i ternære operatorer
Sådan kan du også bruge det til at forkorte din betingelse i ternære operatorer.
// ❌'' === false ? '🙂' : '🙃';// ✅ Much better'' ? '🙂' : '🙃';
# Brug af Falsy-værdi i logiske operatorer
Her er en interessant en af slagsen. Du kan bruge ||
og &&
til at returnere en værdi. Det er helt klart super vigtigt at vide, hvilken værdi der er falsy og truthy.
||
sammenligninger stopper, så snart et truthy udtryk evalueres
const or = '' || 'hi'; // "hi"const or = || 'hi'; //
&&
sammenligning stopper, så snart et falsy udtryk evalueres
const and = '' && 'hi'; // ""const and = && 'hi'; // "hi"
# Community Eksempler
# Brug af falsy værdier til enhedstest
Jason A: Nogle gange, når jeg tester enheden, bruger jeg et array af falske værdier og løber over dem for at se, om min fallback fungerer korrekt, lidt ligesom dette:
.forEach(el => expect(funcImTesting(el).to.be('my fallback')),);
Tak: @jsawbrey