Questo fa parte della mia serie di elementi essenziali. Non sono i post più eccitanti. Ma è importante conoscere questi fondamenti per capire perché JS fa le cose che fa. Vi aiuterà a fare il debug meglio perché saprete perché le cose non funzionano e vi aiuterà a passare da sviluppatore junior a sviluppatore intermedio. Andiamo! 💪
I valori in JS hanno un valore booleano intrinseco associato. Quindi è super importante sapere a cosa verrebbero valutati quei valori (vero o falso), specialmente quando si tratta di confronti e condizionali 🤓
Io uso cercare di capire quali valori sarebbero veri. Non farlo. Invece, memorizza quali valori sono Falsy. Se non è sulla lista, è considerato veritiero 👍
// JS Essentials: Falsy ValuesfalseundefinednullNaN0 or +0 or -0"" or '' or `` (empty string)// Everything else is truthy
# Valori che sono effettivamente veritieri
Qui ci sono alcuni valori di esempio che potresti aver pensato fossero veri (almeno io), ma in realtà valutano true
. Ricorda che se non è nella lista false, è vero!
// 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
# Using Falsy Value in Conditional Statements
Siccome ogni valore in JS valuta un booleano (vero o falso). Possiamo accorciare il nostro condizionale nell’istruzione if
.
// ❌if(false === null)if(undefined === null)if(null === null)if(NaN === null)if(0 === null)if("" === null)if(value === null)// ✅ Much betterif(!value)
# Using Falsy value in Ternary Operators
Similmente, puoi usarlo per accorciare la tua condizione negli operatori ternari.
// ❌'' === false ? '🙂' : '🙃';// ✅ Much better'' ? '🙂' : '🙃';
# Using Falsy value in Logical Operators
Ecco un interessante. Puoi usare ||
e &&
per restituire un valore. Sicuramente sapere quale valore è falso e vero è super importante.
||
i confronti si fermano non appena viene valutata un’espressione vera
const or = '' || 'hi'; // "hi"const or = || 'hi'; //
&&
i confronti si fermano non appena viene valutata un’espressione falsa
const and = '' && 'hi'; // ""const and = && 'hi'; // "hi"
# Community Examples
# Using Falsy Values for Unit Testing
Jason A: A volte quando faccio i test unitari uso un array di valori falsificati e li metto in loop per vedere se il mio fallback funziona correttamente, un po’ come questo:
.forEach(el => expect(funcImTesting(el).to.be('my fallback')),);
Grazie: @jsawbrey