Contenidos
Tipos de datos en Javascript
Los tipos en Javascript son una representación de los datos, ya que no requiere que las variables declaren su tipo, porque todos los tipos se convierten de forma automática
Tipo booleano
El tipo booleano simplemente distingue entre dos estados, un estado de éxito o de activado, valor verdadero, true, y un estado de fracaso o de desactivado, valor falso, false
Tipos numéricos
Los tipos numéricos los podemos dividir en reales y enteros
Tipo numérico entero
- Decimal
enteros en base 10
Tanto positivos como negativos
- Hexadecimal
enteros en base 16
Se coloca antes del número en base 16 0x ó 0X
- Octal
enteros en base 8
Colocamos un cero antes de dicho número en octal
Tipo numérico real
Los reales se componen de una parte entera y otra fraccionaria separada por un punto de la anterior
La parte fraccionaria puede estar compuesta por un indicador de exponente E o e seguido de un número entero que indica el valor del exponente
Tipo string
Un string es una cadena de caracteres delimitadas por comillas
Las comillas serán simples o dobles atendiendo a una determinada regla
Por defecto se usarán comillas dobles ("), pero si alguna sentencia a de ir incluida entre dichas comillas, si esa sentencia contiene un string o a su vez otra sentencia que también deba ir delimitada por dichas comillas, estas comillas serán entonces comillas simples (‘)
Por otro lado, hay que tener en cuenta la escritura de caracteres especiales en lo que denominamos secuencias de escape
La secuencia de escape comienza siempre con el carácter \ y a continuación se escribe otro carácter que representa el código especial o el número en octal o hexadecimal de su código ASCII
Las secuencias de escape representan un único carácter en las strings en donde aparecen
Código | Descripción |
a | Sonido |
b | Blanco |
f | Salto de línea |
n | Nueva línea |
r | Retorno de carro |
v | Tabulador vertical |
\ | Blackslash "\" |
‘ | Comilla simple |
" | Comilla doble |
Ooo | Ascii en octal |
Xhh | Ascii en hexadecimal |
t | Tabulador horizontal |
Arrays
Podemos crear arrays a los que le daremos un nombre y a los que accederemos con un índice que comenzará desde el elemento número 1 (no desde el 0 como en Java o en C / C++)
En los arrays al igual que con las variables no existen tipos predeterminados. Para crear un array es necesario definir una función como la que veremos a continuación:
Comentar sobre la función que la palabra reservada this hace referencia a la variable a actual, es decir, a la variable que contendrá el array
Por otro lado, observar que los array tienen una propiedad length que nos muestra la longitud de dicho array
Por último mostrar el uso de dicha función:
Objetos
Los objetos se componen de un conjunto de valores, propiedades y un conjunto de métodos aplicados a esos valores
Son estos métodos los que nos permiten modificar el estado de dicho objeto, es decir, el valor de sus propiedades
En JavaScript existen objetos predefinidos
A parte, el programador también puede crear sus propios objetos
Para hacer uso de las propiedades de un objeto basta con utilizar la siguiente notación:
mi_objeto.propiedad
Esto se verá con más claridad en el siguiente ejemplo, en el cual tenemos un objeto Universitario en el que tenemos las propiedades: Nombre, Apellido, Edad y Facultad. Suponiendo que tenemos una variable Uni1 que contiene en un momento determinado un objeto Universitario:
Pero no sólo podemos acceder a las propiedades de un objeto mediante la notación expuesta anteriormente, ya que, existe una relación entre los objetos y los arrays, puesto que podemos acceder a un objeto como si este fuera un array y sus elementos fueran los propiedades de dicho objeto en el orden en que se definieron
Este tipo de vectores se denominan arrays asociativos
Un método es una función asignada a un objeto. Así para asignar una función como método de un objeto se utiliza la siguiente sintaxis:
Podemos observar que el nombre del método es la manera en la que queremos nombrar a la función dentro del objeto
Un método puede ser llamado en un contexto mediante la sintaxis:
Objeto.nombreDelMétodo(parámetros);
La palabra reservada this nos permite referenciar al objeto actual
Por ejemplo, supongamos que la función validate permite validar las propiedades de un objeto mediante un mínimo y un máximo asociados; tendremos:
Se podrá llamar entonces a la función validate a cambio de los valores de un formulario mediante la palabra reservada this y el atributo OnChange que permite detectar los cambios de valores
Esto se hace mediante la marca HTML y el evento:
De manera general, la palabra this se refiere al objeto actual
El cliente y el servidor tienen un conjunto de objetos predefinidos que pueden ser completados mediante nuevos objetos
La creación de un objeto se hace en dos etapas:
- Definir el objeto mediante una función
- Crear un objeto mediante la palabra reservada new
Para definir un objeto, se creará una función que permita precisar su nombre, sus funciones y sus métodos asociados
Por ejemplo, si se quiere crear un objeto universitario cuyas propiedades serían nombre, apellido, edad y dni, se definirá la función genérica siguiente:
Las propiedades de un objeto pueden describirse mediante otros objetos
Hacemos que el objeto universitario tenga un propiedad del objeto Nota_Media por tanto:
Por tanto, para acceder a la nota final:
alumno.expediante.final
Cuando se define un objeto, es posible enriquecer su descripción mediante nuevas propiedades
alumno.dni = 44567234;
Ahora la propiedad dni pertenece a la instancia del objeto contenido en alumno
Esta modificación no afectará a los otros objetos del tipo universitario, ya que para añadir una propiedad a un tipo de objeto esta debe figurar en la definición del mismo
La definición de métodos asociados a un objeto puede precisarse en la definición del objeto
Por ejemplo, para el objeto universitario definimos una función que muestre el nombre, apellidos, dni y facultad de un alumno
Esta función se convierte en un método asociado al tipo realizando en su definición lo siguiente:
Su forma de uso será:
alumno.Datos();
En el siguiente ejemplo se muestra el funcionamiento del tipo universitario que hemos creado
Para ello creamos el siguiente formulario:
La función Mostrar_Univers(form) se define como sigue:
Nota No se han comprobado si los datos que se insertan en el formulario son "correctos", es decir, si las notas están entre 0 y 10, si los nombres y apellidos se componen sólo de letras o la edad sea numérica
Valor nulo
En JavaScript a las variables se les puede asignar un valor que indica el valor vacío, este valor es el valor null
La conversión de tipos de datos
Antes que nada, recordar que JavaScript no necesita declaración de tipos
El contenido de la variable se convertirá automáticamente en el transcurso del programa según su uso
El esquema de conversión del tipo se basa en el principio siguiente: el tipo asociado corresponde al del operando de la izquierda
Esto se debe a que la evaluación se realiza de izquierda a derecha
Por ejemplo, supongamos la definición de las variables siguientes:
Si evaluamos las siguientes expresiones
La primera expresión convertirá la variable un_numero en una cadena de caracteres porque el operando de la izquierda una_string es una cadena de caracteres
Esta expresión concatena las dos cadenas de caracteres y el resultado de x es: "742"
Por el contrario, la segunda expresión convierte la cadena una_string en un valor numérico porque el operando de la izquierda un_numero, es como su propio nombre indica, un número
Esta segunda expresión suma los dos números y el resultado de y es: 49
La conversión de tipos no puede hacerse en todos los casos posibles: ciertas cadenas de caracteres no pueden convertirse en número
Tales conversiones generan un error
Por ejemplo:
Tabla que resume la conversión de tipos en JavaScript:
Tipo | Función | Objeto | Número | Booleano | String |
Función | — | Función | Error | Error | Descompila |
Objeto | Error | — | Error | True | ToString |
Objeto nulo | FunObj ok | — | 0 | False | «null» |
Número | Error | Número | — | True | ToString |
Número = 0 | Error | Null | — | False | «0» |
Booleano = true | Error | Booleano | 1 | — | «true» |
Booleano = false | Error | Booleano | 0 | — | «false» |
String | Comilla simple | String | Numstr ok | True | — |
String nula | Error | String | Error | False | — |