Hoje é segunda-feira, 6th fevereiro 2012

Funções para Manipulação de variáveis

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.

?View Code JAVASCRIPT
/**
 * 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

Deixe uma resposta.





Menu Principal

Publicidade