HTMLpointHTMLpoint HTMLpoint.com


 Tipos de variables



Los lenguajes tradicionales (como el C) usan sólo variables que hayan sido previamente declaradas para:

  1. optimizar el uso de la memoria;
  2. aumentar la fiabilidad.

Javascript, sin embargo utiliza un control de tipo laxo por lo que no existe una sección de declaración de variables ni es tampoco necesario declararlas:automáticamente se asigna el tipo en base a la declaración. Por ejemplo Prueba="texto" y Prueba=59 son dos declaraciones totalmente válidas, pero en el primer caso Prueba es considerada objeto string, mientras que en el segundo la misma es considerada como valor numérico.

Si se concatenan valores diversos, prevalece el valor string, por lo que un número concatenado con una cadena produce una cadena. Ahora bien, si la cadena es un número, el resultado será un número (p.ej., timval=365+"10" dará; 375).

A veces, sin embargo, este control no es preciso (por ejemplo, cuando se multiplica una variable cadena por un número) y ya que no existe un compilador para controlar los errores, el script no genera los resultados deseados. En este caso, más que declarar basta convertir el resultado con una función de conversión.

Para convertir los valores basta utilizar:

  1. las comillas, para convertir un valor numérico en cadena o la suma de un número con un espacio;
  2. método String() (desde Javascript 1.2) para convertir en cadena o con el constructor String() (p.ej., micadena=String(num));
  3. las funciones eval(), parseInt() y parseFloat() para convertir un valor cadena en numérico;
  4. los valores lógicos se obtienen de valores numéricos o cadena igualándolos a true o false.

Las funciones eval(), parseInt() y parseFloat()funcionan como sigue:

  • parseInt busca un entero al inicio de una cadena, descartando las cadenas, y lo visualiza ignorando las partes decimales y la eventual coma (p.ej., parseInt("39 grados")=39). Un segundo parámetor, facultativo, es la base numérica (p.ej., parseInt(text,16) para buscar números hexadecimales);
  • parseFloat opera de la misma manera, pero conserva la eventual coma presente y el signo.

La función eval es bastante compleja y busca cualquier expresión Javascript válida para transformarla en número. En Netscape 2.0, sin ambargo, provoca caídas imprevistas:

x=10; y=20; z=30; eval("x+y+z+900")=960

De todas formas, en cualquier momento, se puede verificar el tipo de la variable mediante el operador typeof (p.ej., typeof 69 restituye "number"), el cual ha sido introducido con con Javascript 1.1. Los valores restituidos son: string, boolean, number, function.

Supongamos, por ejemplo, que tenemos las siguientes variables:

var prueba=new Function()
var número=1
var carácter="Hola"

Pulsar los botones para verificar el tipo

   

con el operador typeof se tendrá

typeof prueba restituirá object
typeof número restituirá number
typeof carácter restituirá string


  Vuelve a principio de página