terça-feira, 6 de julho de 2021

Javascript: Verificar se uma string é vazia | Valores considerados falsos

Estava eu precisando verificar num código Javascript se o valor de uma variável é uma string vazia, gerada de um split. O problema é que Javascript não tem um método isEmpty(), que foi a primeira coisa que me veio a cabeça. Entretanto, existe duas maneiras para verificar se a string está vazia. 

A primeira é verificando se o tamanho dela é 0. Para isso, podemos acessar a propriedade length de uma string, e verificar se o valor é 0, como no exemplo abaixo:

01. var variavel = "";
02. if(variavel.length!=0){
03.   alert("Processa a variavel string");
04. }

Entretanto, ela funciona bem quando temos certeza que estamos analisando uma variável do tipo String, e sabemos bem que Javascript é uma linguagem de tipagem fraca, então pode ser que o que normalmente seria string, viesse um valor nulo. Então como verificamos neste caso? 

No caso do Javascript, temos alguns valores que são considerados falsos em uma verificação booleana. são eles:
  • false (Boolean e o mais óbvio)
  • 0, -0, 0.0 e 0x0 (Number, todos os formatos de zero);
  • 0n e 0x0n (BigInt, este tipo de dado foi introduzido em 2020. Igual ao Number, mas como ambos os tipos não devem se misturar em operações, então vamos manter eles separados);
  • "", '' e `` (Strings vazias);
  • null (valor nulo);
  • undefined (valor indefinido);
  • NaN (Not a Number);
Voltando ao nosso problema original, podemos verificar se a nossa string é vazia e tratar a possibilidade de valor nulo da seguinte forma:

01. var variavel = "";
02. if(variavel){
03.   alert("Processa a variavel");
04. }

Então é isso por hoje.