Hoje é segunda-feira, 6th fevereiro 2012

Arquivo para o ‘Javascript’ Categoria

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 );
            }
        }
    };
};