Ver índice de contenidos del libro

2.11. Determinación del tipo de variable

JavaScript ofrece una manera de poder comprobar el "tipo" (en inglés type) de una variable. Sin embargo, el resultado puede ser confuso — por ejemplo, el tipo de un array es object.

Por eso, es una práctica común utilizar el operador typeof cuando se trata de determinar el tipo de un valor específico.

Determinar el tipo en diferentes variables

var myFunction = function() {
    console.log('hello');
};
 
var myObject = {
    foo : 'bar'
};
 
var myArray = [ 'a', 'b', 'c' ];
var myString = 'hello';
var myNumber = 3;
 
typeof myFunction;  // devuelve 'function'
typeof myObject;    // devuelve 'object'
typeof myArray;     // devuelve 'object' -- tenga cuidado
typeof myString;    // devuelve 'string'
typeof myNumber;    // devuelve 'number'
typeof null;        // devuelve 'object' -- tenga cuidado
 
if (myArray.push && myArray.slice && myArray.join) {
    // probablemente sea un array
    // (este estilo es llamado, en inglés, "duck typing")
}
 
if (Object.prototype.toString.call(myArray) === '[object Array]') {
    // definitivamente es un array;
    // esta es considerada la forma más robusta
    // de determinar si un valor es un array.
}

jQuery ofrece métodos para ayudar a determinar el tipo de un determinado valor. Estos métodos serán vistos más adelante.