DEV Community

Luís Von Muller
Luís Von Muller

Posted on

8 2

🤔 False, true, "Falsy" & "Truthy" 👀

🤔 False, true, "Falsy" & "Truthy" 👀

⚙️ Entendendo um pouco do contexto Geral.

Na computação temos um Tipo chamado: "Booleano". O que é: Booleano?

Aqui estamos falando tipo primitivo do TypeScript: "Boolean". (⊙.☉)7

Ser do tipo (Booleano) significa que algum valor, isto é, alguma variável, constante ou qualquer coisa que possuí em si um valor desse tipo pode ser:

  • Verdadeiro (Isto é, true) 👍
  • Falso (Isto é, false) 👎

O nome "Booleano" (Boolean em TypeScript) faz uma homenagem ao Matemático & Filósofo George Boole, ele "construiu" a base algébrica necessária para a criação Lógica Algébrica que podemos usar para: Operações lógicas (em booleanos) como conjunção (&&), disjunção (||), disjunção exclusiva ((p && !q) || (!p && q)), equivalência lógica (==) e negação (!), que correspondem a algumas das operações da álgebra booliana (É a parte da do conceito da Matemática Discreta).

Fornecendo um exemplo básico ԅ(≖‿≖ԅ):

/** Vamos iniciar uma constante "Booleana" verdadeira */
const constanteVerdadeira: Boolean = true;
/** Vamos iniciar uma constante "Booleana" falsa através da inversão do seu valor boleano com o operador "!" */
const constanteFalsa: Boolean = !constanteVerdadeira;

if(constanteFalsa && constanteVerdadeira ) {
    console.log("Ambas as constantes são verdadeiras. ヽ(´▽`)/")
} else if (constanteFalsa || constanteVerdadeira) {
    console.log("Ao menos uma das constantes são falsas ( ಠ ʖ̯ ಠ )")
} else {
    console.warn("Nenhuma constante é verdadeira (҂◡_◡)")
}
Enter fullscreen mode Exit fullscreen mode

🤔 Por que existe: "Falsy" ou "Truthy"?

Na lógica, afirmações diferentes são logicamente equivalentes se tiverem o mesmo conteúdo lógico. Isto é, se elas tiverem o mesmo valor de verdade em todos os modelos. Também conhecido por "Tautologia", isto é, algo que é correspondente em termos lógicos.

👎 O que é o "Falsy" ou Errôneo/Falseáveis ?

➡️ Falsy é um "pseudo tipo" logicamente equivalente ao Valor Primitivo false para o JavaSript.

Os valores que seriam aceitos como false seriam:

  • 0 - (O valor numérico Zero).
  • 0n - (Um inteiro de GIGANTE cujo valor numérico é zero - um bigInt).
  • null - (O tipo primitivo Nulo).
  • undefined - (Algo que não possui valor atribuído, isto é, indefinido).
  • NaN (Not-a-Number - algo que não é um número pertencente ao conjuntos dos reais)
  • "" ou '' - (Uma cadeia de caracteres vazia)

Segue a prova do supracitado (☞゚ヮ゚)☞

const inteiroDeValorNumericoZero: number = 0;
const floatDeValorNumericoZero: number = 0.0;
const inteiroGrandeComValorNumericoZero: bigint = BigInt(0);
const nulo: null = null;
let indefinido;
const naoNumero: number = Number.NaN; //Sim, o tipo de NaN é "numero" ¯\_(ツ)_/¯
const cadeiaDeCaracteresVazia = '';

let valoresInexatos: unknown[] = [
    inteiroDeValorNumericoZero,
    floatDeValorNumericoZero,
    inteiroGrandeComValorNumericoZero,
    nulo,
    indefinido,
    naoNumero,
    cadeiaDeCaracteresVazia
]

valoresInexatos.forEach((valor) => console.log(valor ? "Verídico" : "Errôneo/Falseáveis"));
Enter fullscreen mode Exit fullscreen mode

O que é "Truthy" ou Verídico?

Truthy é um "pseudo tipo" logicamente equivalente ao Valor Primitivo true para o JavaSript.

Os valores que seriam aceitos como true seriam:

  • '0' ou "0" - (Uma cadeia de caracteres com o Valor numérico zero dentro dela).
  • 'false' ou "false" (...) - (Uma cadeira de caracteres com a palavra "false").
  • []_ - (Um "vetor" ("array" vazio), isto é, sem elementos presentes dentro de si).
  • {} - (Um objeto sem nenhuma propriedade.)
  • ()=>{} - (Uma definição de função anônima ou não.

Segue a prova do supracitado (☞゚ヮ゚)☞

const cadeiaDeCaracteresComZero: string = '0';
const cadeiaDeCarcteresComAPalavraFalse: string = 'false';
const vetorVazio: number[] = [];
const funcaoNomeada: Function = () => {
    //vazia
}

let valoresVeridicos: unknown[] = [
    cadeiaDeCaracteresComZero,
    cadeiaDeCarcteresComAPalavraFalse,
    vetorVazio,
    funcaoNomeada,
    () => {}
]

valoresVeridicos.forEach((valor) => console.log(valor ? "Verídico" : "Errôneo/Falseado"));
Enter fullscreen mode Exit fullscreen mode

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (2)

Collapse
 
hgoulart profile image
Hingo Rocha

Muito bom, parabéns, direto e objetivo.

Collapse
 
tenebris_aenigma profile image
tenebrisAenigma

Brabo demais, cara bom e novo!! (。◕‿◕。)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

If you found this post helpful, please consider leaving a ❤️ or a kind comment!

Sounds good!