Ce este „Falsy” în JavaScript?

Oct 28, 2019

În JavaScript, o valoare este falsă dacă coerciția de tip încorporată de JavaScript o convertește în false. De exemplu,luați în considerare instrucțiunea if de mai jos:

if (v) { console.log('v is not falsy');}

Expresia console.log()se va executa numai dacă v nu este una dintre valorile de mai jos:

  • false
  • 0
  • 0n: 0 as a BigInt
  • '': Empty string
  • null
  • undefined
  • NaN

Aceste 7 valori sunt singurele valori false în JavaScript. Orice valoare care nu este falsă este veridică.

În special, un obiect non-null este întotdeauna truey, chiar dacă funcția sa valueOf() returnează o valoare falsy.

function isFalsy(v) { return !v;}// `false`. The object form of `0` is truthy, even though 0 is falsy.isFalsy(new Number(0));

Recomandări

Utilizarea truthy/falsy pentru constrângerile implicite de tip în declarațiile if este în mod obișnuit dezordonată. Este rar să găsiți un caz în care cele 7 valori falsy sunt exact setul de valori pe care doriți să le căutați.

De exemplu, să presupunem că implementați o funcție care verifică dacă un șir de caractere este mai scurt de 25 de caractere.

function checkLength(v) { if (!v) { throw new Error('Must provide a string!'); } return v.length < 25;}

Din păcate, checkLength('') va arunca o eroare pentru că șirul gol estefalsy. În schimb, ar trebui să verificați dacă v este un șir de caractere:

function checkLength(v) { if (typeof v !== 'string') { throw new Error('Must provide a string!'); } return v.length < 25;}

Valoare nulă

În loc să verificați dacă valorile sunt adevărate/falsificate, de obicei doriți să verificați dacă există valori „nule”. Unul dintre cazurile obișnuite de utilizare a verificărilor false este acela de a vă asigura că nu obțineți o eroare TypeError: Cannot read property 'prop' of null atunci când accesați o proprietate cu o valoare v.

Este sigur să accesați v.prop dacă v nu este strict egal cu null sau undefined. Chiar și NaN.prop este în regulă.

const x = Number('abc');x; // NaNx.prop; // undefined

Verificarea dacă v == null este echivalentă cu v === null || v === undefined.Cu alte cuvinte, o valoare este vag egală cu null numai dacă este strict egală cu null sau undefined. Așadar, verificarea dacă v == null este adesea mai precisă decât verificarea valorilor veridice sau false.

Mai multe tutoriale fundamentale

  • Cum se compară obiectele în JavaScript
  • Cum se verifică dacă o variabilă JavaScript este nedefinită
  • Diferența dintre let și var în JavaScript
  • JavaScript String Interpolation

  • Global Variables in JavaScript
  • How to Check for `NaN` in JavaScript
  • JavaScript Enums

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.