¡VAYA LIO CON LOS TIPOS!

<script src=”my own” title=”\¡vaya lio con los tipos\!”>

El título del post es simplemente hacer mención a uno de los problemas más comunes de Javascript, y es que sus tipos de datos suelen confundirse constantemente, pese a que sólo sean seis tres: String, Number, y Boolean, sin incluir al tipo Object que es la “superclase” de casi todos (¿o todos?) los tipos de datos de Javascript, o el primitivo a los primitivos null undefined. El punto es que casi siempre ocurre que un valor “32” es pasado como String pero debe ser validado como Number y cosas así, ¡menudo lío!…

Por fortuna existe una libreria que ayuda mucho en este aspecto, pues permite validar todos los tipos de datos conocidos de Javascript (a.k.a. ECMAScript 5) y algunas cosillas más, esta librería se llama is.js y básicamente lo que realiza es una validación con el método is(), retornando true si corresponde con el valor consultado. He aquí algunos ejemplos:

var dato = {'arreglo':[1, 3, 6],'cadena': "cadena de texto", 'numero': 32 , 'fecha' : new Date()};
	function validarValor(valor){
		if (is.number(valor))
			alert('es un numero');
		else if (is.string(valor))
			alert('es un string');
		else if (is.array(valor))
			alert('es un array');
		else if (is.date(valor))
			alert('es una fecha');
		else if (is.object(valor))
			alert('es un object');
		else if (is.undefined(valor))
			alert('no existe ese valor');
	}

Y su respectivo HTML…

	<script src="is.js"></script>
	<button id="dato1" onclick="validarValor(dato)">Validar dato</button>
	<button id="dato2" onclick="validarValor(dato.arreglo)">Validar "dato.arreglo"</button>
	<button id="dato3" onclick="validarValor(dato.cadena)">Validar "dato.cadena"</button>
	<button id="dato4" onclick="validarValor(dato.numero)">Validar "dato.numero"</button>
	<button id="dato5" onclick="validarValor(dato.fecha)">Validar "dato.fecha"</button>
	<button id="dato6" onclick="validarValor(dato.desconocido)">Validar "dato.desconocido"</button>

Cada botón va a incluir una validación dentro del objeto que se pasa como parámetro a la función. ¿interesante, no?

Pero esta librería no se limita a validar tipos de dato, sino que además puede validar si un elemento es una función, si es una fecha del pasado, si un número es entero positivo, si todos los elementos de un arreglo son pares o si el navegador usado es Internet Explorer 6. Pueden ver su página oficial para más detalles.

Lo que si es cierto es que es una interesante forma de validar tipos de datos y otras cosas para no volverse un lío con los tipos de dato en Javascript. Buena alternativa, ¿no?… 😉

</script>

Actualizado 20-05-2015: ¡Uy! Yo mismo me hice un lío con los tipos de datos primitivos y sus envoltorios… Es lo bueno de investigar 😀

Anuncios

Un comentario en “¡VAYA LIO CON LOS TIPOS!

Los comentarios están cerrados.