O que é “Falsy” em JavaScript?

28 de outubro de 2019

Em JavaScript, um valor é falsyif se a coerção do tipo embutido do JavaScript o converte para false. Por exemplo, considere o seguinte if declaração:

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

O console.log() só será executado se v não for um dos valores abaixo:

  • false
  • 0
  • 0n: 0 como um BigInt
  • '': Cordel vazio
  • null
  • undefined
  • NaN

Estes 7 valores são os únicos valores falsificados em JavaScript. Qualquer valor que não seja falso é falso.

Em particular, um objecto não-nulo é sempre verdadeiro, mesmo que a sua função valueOf() devolva um valor falso.

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

Recomendas

Usar truthy/falsy para coerciões de tipo implícito em if declarações istypically confusas. É raro encontrar um caso em que os 7 valores falsificados são exatamente o conjunto de valores que você quer procurar.

Por exemplo, suponha que você esteja implementando uma função que verifica que uma string é menor que 25 caracteres.

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

Felizmente, checkLength('') irá lançar um erro porque a string vazia éfalsy. Em vez disso, você deve verificar se v é uma string:

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

Valores nulos

Em vez de verificar valores verdadeiros/falsificados, você normalmente quer verificar valores “nulos”. Um dos casos de uso comum para verificações falsificadas é certificar-se de que você não obtém um erro TypeError: Cannot read property 'prop' of null ao acessar uma propriedade de um valor v.

É seguro acessar v.prop a menos que v seja estritamente igual a null ou undefined. Mesmo NaN.prop está bem.

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

Verifica se v == null é equivalente a v === null || v === undefined. Em outras palavras, um valor é vagamente igual a null somente se for estritamente igual a null ou undefined. Portanto, verificar se v == null é frequentemente mais preciso do que verificar se os valores são verdadeiros ou falsificados.

Mais Tutoriais Fundamentos

  • Como comparar objectos em JavaScript
  • Como verificar se uma variável JavaScript está indefinida
  • A diferença entre let e var em JavaScript
  • Interpolação de Cordas JavaScript
  • Variáveis Globais em JavaScript
  • >

  • Como verificar por `NaN` em JavaScript
  • >

  • JavaScript Enums
  • >

Deixe uma resposta

O seu endereço de email não será publicado.