Tämä on osa Essentials-sarjaani. Ne eivät ole kaikkein jännittävimpiä postauksia. Mutta on tärkeää tuntea nämä perusteet, jotta ymmärtää, miksi JS tekee niitä asioita, joita se tekee. Se auttaa sinua debuggaamaan paremmin, koska tiedät miksi asiat eivät toimi ja auttaa sinua siirtymään juniorikehittäjästä keskitason kehittäjäksi. Mennään! 💪

JS:n arvoihin liittyy luonnostaan Boolean-arvo. Joten on super tärkeää tietää, mihin nuo arvot arvioitaisiin (tosi tai epätosi), varsinkin kun on kyse vertailuista ja ehdollisista 🤓

Minulla on tapana yrittää keksiä, mitkä arvot olisivat tosi. Älä tee niin. Sen sijaan paina mieleen, mitkä arvot ovat Falsy. Jos sitä ei ole listalla, sitä pidetään totuudellisena 👍

// JS Essentials: Falsy ValuesfalseundefinednullNaN0 or +0 or -0"" or '' or `` (empty string)// Everything else is truthy

# Arvot, jotka ovat oikeasti totuudellisia

Tässä on joitain esimerkkiarvoja, joita olisit saattanut luulla totuudelliseksi (ainakin minä luulin niin), mutta se itse asiassa evaluoituu true. Muista, että jos se ei ole false-listalla, se on tosi!

// 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

# Väärän arvon käyttäminen ehdollisissa lausekkeissa

Koska jokainen arvo JS:ssä evaluoituu boolean-arvoksi (true tai false). Voimme lyhentää ehdollista lauseketta if.

// ❌if(false === null)if(undefined === null)if(null === null)if(NaN === null)if(0 === null)if("" === null)if(value === null)// ✅ Much betterif(!value)

# Falsy-arvon käyttäminen ternaarisissa operaattoreissa

Samoin voit käyttää sitä ehdon lyhentämiseen ternaarisissa operaattoreissa.

// ❌'' === false ? '🙂' : '🙃';// ✅ Much better'' ? '🙂' : '🙃';

# Falsy-arvon käyttäminen loogisissa operaattoreissa

Tässä mielenkiintoinen asia. Voit käyttää || ja && arvon palauttamiseen. Ehdottomasti sen tietäminen, mikä arvo on falsy ja mikä totuudenmukainen, on erittäin tärkeää.

|| vertailu pysähtyy heti, kun totuudenmukainen lauseke on evaluoitu

const or = '' || 'hi'; // "hi"const or = || 'hi'; // 

&& vertailu pysähtyy heti, kun virheellinen lauseke on evaluoitu

const and = '' && 'hi'; // ""const and = && 'hi'; // "hi"

# Yhteisöesimerkkejä

# Virheellisten arvojen käyttäminen yksikkötestauksessa

Jason A: Joskus yksikkötestauksessa käytän falsy-arvojen joukkoa ja käyn niiden läpi silmukalla nähdäkseni, toimiiko fallback oikein, suunnilleen näin:

.forEach(el => expect(funcImTesting(el).to.be('my fallback')),);

Kiitos: @jsawbrey

Articles

Vastaa

Sähköpostiosoitettasi ei julkaista.