Acest articol face parte din seria mea de articole esențiale. Nu sunt cele mai interesante postări. Dar este important să cunoașteți aceste elemente fundamentale pentru a înțelege de ce JS face lucrurile pe care le face. Vă va ajuta să depanați mai bine pentru că veți ști de ce lucrurile nu funcționează și vă va ajuta să treceți de la un dezvoltator junior la un dezvoltator intermediar. Să-i dăm drumul! 💪
Valorile în JS au asociată o valoare booleană inerentă. Așa că este super important să știi la ce ar fi evaluate aceste valori (true sau false), mai ales când vine vorba de comparații și condiționale 🤓
Utilizez să încerc să-mi dau seama ce valori ar fi adevărate. Nu faceți asta. În schimb, memorați ce valori sunt Falsy. Dacă nu este pe listă, este considerată veridică 👍
// JS Essentials: Falsy ValuesfalseundefinednullNaN0 or +0 or -0"" or '' or `` (empty string)// Everything else is truthy
# Valori care sunt de fapt veridice
Iată câteva exemple de valori despre care ați fi crezut că sunt adevărate (cel puțin eu am crezut), dar de fapt se evaluează la true
. Amintiți-vă că dacă nu se află pe lista falsă, este adevărată!
// 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
# Utilizarea valorii false în declarațiile condiționale
Din moment ce fiecare valoare din JS se evaluează la un boolean (adevărat sau fals). Putem scurta condiționalul nostru în declarația 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
În mod similar, îl puteți folosi pentru a scurta condiția în operatorii ternari.
// ❌'' === false ? '🙂' : '🙃';// ✅ Much better'' ? '🙂' : '🙃';
# Using Falsy value in Logical Operators
Iată unul interesant. Puteți folosi ||
și &&
pentru a returna o valoare. Categoric, a ști ce valoare este falsy și truthy este super important.
||
comparațiile se vor opri de îndată ce o expresie veridică este evaluată
const or = '' || 'hi'; // "hi"const or = || 'hi'; //
&&
comparația se va opri de îndată ce o expresie falsă este evaluată
const and = '' && 'hi'; // ""const and = && 'hi'; // "hi"
# Community Examples
# Using Falsy Values for Unit Testing
Jason A: Uneori, la testarea unitară, folosesc o matrice de valori false și fac o buclă peste ele pentru a vedea dacă fallback-ul meu funcționează corect, cam așa:
.forEach(el => expect(funcImTesting(el).to.be('my fallback')),);
Mulțumesc: @jsawbrey