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.

segunda-feira, 21 de junho de 2021

Java: Verificando a classe de um objeto (instanceof)

 Existem alguns casos em que é necessário verificar a classe de um objeto instanciado. Existe duas maneiras de verificar isso. A primeira é utilizando o operador instanceof, utilizado quando a classe é conhecida em tempo de compilação. A sintaxe é a seguinte:

[Objeto] instanceof [NomeDaClasse] 

Exemplo de Código:

Animal animal = new Cachorro();
if(animal instanceof Cachorro){
  //Entra aqui se a instância de animal for da classe Cachorro
}


Entretanto, pode haver casos em que você deverá fazer uma verificação de classe em tempo de execução. Você pode obter uma referência do tipo da classe através de um objeto Class. Tendo o objeto Class da classe que deseja, você pode utilizar o método isInstance para fazer a verificação.

Exemplo: 

Animal animal = new Cachorro();
Class classInfo = Cachorro.class;
if(classInfo.isInstance(animal)){
  //Entra aqui se a instância de animal for da classe Cachorro
}

Então é isso por hoje.

quinta-feira, 28 de janeiro de 2021

Javascript: Problemas com Requisição de URL

 Alguns problemas comuns quando você faz uma requisição de uma URL são alguns caracteres especiais, nos quais geralmente dá dor de cabeça. Entretanto, existe caracteres mais especiais no meu caso. Precisava fazer uma requisição e passar por get uma string que continha um caractere "+". O problema é que por padrão URI, um sinal de "+" é usado para representar um espaço e quando chegava no back-end da aplicação, o sinal simplesmente sumia.

Aí que entra uma questão. Para tratar uma URI, no Javascript temos o comando encodeURI(), entretanto, ele não codifica os caracteres que são usadas por padrão (por exemplo, os caracteres : e / do "http://"), e o nosso "+" está incluso nisso. 

Para isso, a função correta para ser usada é "encodeURIComponent()", onde você usará na string que vai ser enviado por get.  Exemplo de uso:

encodeURIComponent("1+3=4")

o retorno da função será:

1%2B3%3D4


terça-feira, 26 de janeiro de 2021

SQL Server: Concatenação

Durante um trabalho, precisei utilizar a concatenação no SQL Server. Normalmente utilizo a função CONCAT, mas para a minha não tão surpresa, a versão do cliente era mais antigo. Então, hoje vou registrar aqui as formas de concatenação possível no SQL Server.