Tipos de datos de JavaScript: tipo de explicación

typeofes una palabra clave de JavaScript que devolverá el tipo de variable cuando la llame. Puede usar esto para validar los parámetros de la función o verificar si las variables están definidas. También hay otros usos.

El typeofoperador es útil porque es una manera fácil de verificar el tipo de variable en su código. Esto es importante porque JavaScript es un lenguaje escrito dinámicamente. Esto significa que no es necesario que asigne tipos a las variables cuando las crea. Debido a que una variable no está restringida de esta manera, su tipo puede cambiar durante el tiempo de ejecución de un programa.

Por ejemplo:

var x = 12345; // number x = 'string'; // string x = { key: 'value' }; // object

Como puede ver en el ejemplo anterior, una variable en JavaScript puede cambiar de tipo durante la ejecución de un programa. Esto puede ser difícil de seguir como programador, y aquí es donde el typeofoperador es útil.

El typeofoperador devuelve una cadena que representa el tipo actual de variable. Lo usa escribiendo typeof(variable)o typeof variable. Volviendo al ejemplo anterior, puede usarlo para verificar el tipo de variable xen cada etapa:

var x = 12345; console.log(typeof x) // number x = 'string'; console.log(typeof x) // string x = { key: 'value' }; console.log(typeof x) // object

Esto puede ser útil para verificar el tipo de variable en una función y continuar según corresponda.

A continuación, se muestra un ejemplo de una función que puede tomar una variable que sea una cadena o un número:

function doSomething(x) { if(typeof(x) === 'string') { alert('x is a string') } else if(typeof(x) === 'number') { alert('x is a number') } }

Otra forma en que el typeofoperador puede ser útil es asegurándose de que una variable esté definida antes de intentar acceder a ella en su código. Esto puede ayudar a prevenir errores en un programa que pueden ocurrir si intenta acceder a una variable que no está definida.

function(x){ if (typeof(x) === 'undefined') { console.log('variable x is not defined'); return; } // continue with function here... }

Es posible que la salida del typeofoperador no siempre sea la esperada cuando busca un número.

Los números pueden cambiar al valor NaN (No es un número) por múltiples razones.

console.log(typeof NaN); //"number"

Quizás intentaste multiplicar un número con un objeto porque olvidaste acceder al número dentro del objeto.

var x = 1; var y = { number: 2 }; console.log(x * y); // NaN console.log(typeof (x * y)); // number

Al verificar un número, no es suficiente verificar la salida de typeofun número, ya que NaNtambién

pasa esta prueba.

Esta función verifica los números y tampoco permite NaNque pase el valor.

function isNumber(data) { return (typeof data === 'number' && !isNan(data)); }

Aunque este es un método de validación útil, debemos tener cuidado porque javascript tiene algunas partes extrañas y una de ellas es el resultado de typeofinstrucciones específicas. Por ejemplo, en javascript muchas cosas son solo objectspara que las encuentre.

var x = [1,2,3,4]; console.log(typeof x) // object console.log(typeof null) // object

Más información:

Documentación MDN para typeof