Funções para Manipulação de variáveis
Última atualização sábado, 3 julho 2010 02:45 Escrito por ffarias sábado, 3 julho 2010 02:45
Ao se trabalhar com javaScript ou qualquer outra linguagem de programação, muitas vezes é necessário saber o tipo da variável que estamos manipulando. Por exemplo: uma variável do tipo boolean pode representar dois valores lógicos (verdadeiro ou falso) e deve assumir somente um dos símbolos dessa faixa de valores.
Considere agora que no seu código existe uma variável qualquer, e em uma determinada condição seja necessário saber o tipo dessa variável.
Exemplificando:
Se tipoVariavel(estado) = ‘boolean’ Então { … }
No javaScript isso acaba se tornado um problema, apesar de pequeno, mas que pode se estender se você precisar saber em outras “várias” linhas de código se uma determinada variável é uma string, um número, um objeto e por aí vai…
O objetivo deste artigo é escrever um código em javaScript (uma pequena biblioteca) para resolver estes pequenos problemas do dia a dia.
/** * Manipulação de Variáveis 1.0 * @author: Felipe Lunardi Farias * * @class check */ var check = function(){ return { /** * Criamos um objeto (op) com a propriedade prototype para * adicionar propriedades e/ou métodos a um determinado objeto */ op : Object.prototype, /** * Determina se o objeto possui valor indefinido * @method is_undefined * @param {object} objeto em teste * @return {boolean} resultado */ is_undefined: function( o ) { try{ return typeof o === 'undefined'; } catch(e){ throw new Error( "Error: " + e ); } }, /** * Determina se é um array * @method is_array * @param {object} objeto em teste * @return {boolean} resultado */ is_array: function( o ){ try{ return this.op.toString.apply(o) === '[object Array]'; } catch(e){ throw new Error( "Error: " + e ); } }, /** * Determina se o objeto é do tipo string * @method is_string * @param {object} objeto em teste * @return {boolean} resultado */ is_string: function( o ) { try{ return typeof o === 'string'; } catch(e){ throw new Error( "Error: " + e ); } }, /** * Determina se o objeto é do tipo número * @method is_number * @param {object} objeto em teste * @return {boolean} resultado */ is_number: function( o ) { try{ return typeof o === 'number' && isFinite(o); } catch(e){ throw new Error( "Error: " + e ); } }, /** * Determina se o objeto é uma função * @method is_function * @param {object} objeto em teste * @return {boolean} resultado */ is_function: function( o ) { try{ return this.op.toString.apply(o) === '[object Function]'; } catch(e){ throw new Error( "Error: " + e ); } }, /** * Determina se o objeto é um boleano * @method is_boolean * @param {object} objeto em teste * @return {boolean} resultado */ is_boolean: function( o ) { try{ return typeof o === 'boolean'; } catch(e){ throw new Error( "Error: " + e ); } }, /** * Determina se o objeto possui valor nulo * @method is_null * @param {object} objeto em teste * @return {boolean} resultado */ is_null: function( o ) { try{ return o === null; } catch(e){ throw new Error( "Error: " + e ); } }, /** * Determina se o objeto é do tipo objeto * @method is_object * @param {object} objeto em teste * @return {boolean} resultado */ is_object: function( o ) { try{ return typeof o === 'object'; } catch(e){ throw new Error( "Error: " + e ); } } }; }; |
Como utilizar:
// Crie uma instância de check
check = new check();
// Variáveis com valores default (para exemplo)
var teste1 = undefined;
var teste2 = new Array(1,2,3);
var teste3 = ‘Dev’;
var teste4 = 123456;
var teste5 = function(){};
var teste6 = true;
var teste7 = null;
var teste8 = new Object;
// Testes
check.is_undefined( teste1 ) ; // retorna verdadeiro
check.is_array( teste2 ) ; // retorna verdadeiro
check.is_string( teste3 ) ; // retorna verdadeiro
check.is_number( teste4 ); // retorna verdadeiro
check.is_function( teste5 ) ; // retorna verdadeiro
check.is_boolean( teste6 ); // retorna verdadeiro
check.is_null( teste7 ); // retorna verdadeiro
check.is_object( teste8 );
check.is_undefined( teste3 ) ; // retorna falso
check.is_array( teste7 ) ; // retorna falso
Download: Clique aqui e faça o download completo + código minify para utilizar em produção.
Se você tiver dúvidas, sugestões ou quiser adicionar funcionalidades a esta pequena biblioteca entre em contato por e-mail: felipelunardifarias@gmail.com