Estava com problema entre a comunicação de dois serviços diferentes feito pela parte de front-end através do javascript.
Uma requisição ajax para o serviço retornava um array de objetos que a interface deveria percorrer e montar um html como resposta. O problema é que algumas vezes este array continha além dos objetos esperados alguma função de callback ou retorno indefinido (undfined) no array.
Para fazer o tratamento deste erro eu precisaria saber qual é o tipo do objeto retornado e ignorar qualquer um que não fosse "object".
Javascript typeof
O comando typeof do javascript retorna qual é o tipo do objeto em questão, os retornos dessa função podem ser:
- number
- string
- boolean
- object
- function
- undefined
Exemplo de uso:
if(typeof(myObj) == "object"){
alert("myObj é um objeto, pode prosseguir");
}else{
alert("Não é um objeto, ignore");
}
Curiosidades
A função typeof sempre retorna uma string (com os valores da lista lé de cima), então typeof(typeof(x)) sempre irá retornar string, não importa se x é um array, string, int ou função.
Um array é considerado um object, mas com a função abaixo (case sensitive, criamos a função typeOf) retorna os tipos padrões mais o array.
function typeOf(obj) {
if ( typeof(obj) == "object" )
if (obj.length)
return "array";
else
return "object";
} else
return typeof(obj);
}
Função bem simples e ótima para previnir e tratar erros, dúvidas e sugestões nos comentários!