Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
JavaScript es el lenguaje de programación que se ocupa de asignar la interactividad a cada uno de los elementos que conforman una página web o una aplicación. Este lenguaje, complicado pero a la vez extremadamente mecánico, funciona mediante la asignación de elementos de diferentes tipos, cuyo uso y aplicación resulta imprescindible conocer. Tras haber consultado los 100 ejercicios que conforman este libro, usted habrá profundizado en las entrañas de JavaScript y podrá poner en práctica todo cuanto ha aprendido. Con este libro: Conocerá con todo detalle la sintaxis de JavaScript. Estudiará los tipos de datos primitivos con que trabaja este lenguaje. Descubrirá cómo funcionan los distintos operadores. Aprenderá a utilizar interesantes y útiles funciones. Profundizará de forma teórica y amena en todos los elementos que conforman el lenguaje JavaScript.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 246
Veröffentlichungsjahr: 2020
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Aprender JavaScriptAvanzadocon 100 ejercicios prácticos
© 2015 MEDIAactive
Primera edición, 2015
© 2015MARCOMBO, S.A.
Gran Via de les Corts Catalanes, 594
08007 Barcelona
www.marcombo.com
Diseño de la cubierta: NDENU DISSENY GRÀFIC
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra sólo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».
APRENDER JAVASCRIPT AVANZADO CON 100 EJERCICIOS PRÁCTICOS
100 ejercicios, en este caso más teóricos, que conforman una guía de los principales elementos que forman parte del lenguaje de programación JavaScript. Si bien es imposible recoger en las páginas de este libro todas las prestaciones de estos elementos, hemos escogido las más interesantes e imprescindibles. Una vez consultados los 100 ejercicios que componen este manual, el lector será capaz de comprender por sí mismo cómo se consigue la interactividad más habitual de una página web.
LA FORMA DE APRENDER
Nuestra experiencia en el ámbito de la enseñanza nos ha llevado a diseñar este tipo de manual, en el que cada una de las funciones se ejercita mediante la realización de un ejercicio práctico. Dicho ejercicio se halla explicado paso a paso y pulsación a pulsación, a fin de no dejar ninguna duda en su proceso de ejecución. Además, lo hemos ilustrado con imágenes descriptivas de los pasos más importantes o de los resultados que deberían obtenerse y con recuadros IMPORTANTE que ofrecen información complementaria sobre cada uno de los temas tratados en los ejercicios.
Gracias a este sistema se garantiza que una vez realizados los 100 ejercicios que componen el manual, el usuario podrá desenvolverse cómodamente con el citado lenguaje de programación.
A QUIÉN VA DIRIGIDO EL MANUAL
Si se inicia usted en la práctica y el trabajo con JavaScript, encontrará en estas páginas un completo recorrido por sus principales funciones. Pero si es usted un experto en este elemento de programación, le resultará también muy útil para consultar deter-minados aspectos más avanzados o repasar funciones específicas que podrá localizar en el índice.
Cada ejercicio está tratado de forma independiente, por lo que no es necesario que los realice por orden (aunque así se lo recomendamos, puesto que hemos intentado agrupar aquellos ejercicios con temática común). De este modo, si necesita realizar una consulta puntual, podrá dirigirse al ejercicio en el que se trata el tema y llevarlo a cabo sobre su propio proyecto.
JAVASCRIPT
Javascript es un lenguaje de programación que permite crear programas y sitios web prácticamente idénticos a cualquier aplicación de escritorio, en cuanto a su respuesta se refiere. JavaScript aporta animaciones, interactividad y efectos visuales a un documento HTML, la base de cualquier sitio o página web.
No sólo encontramos JavaScript en las entrañas de muchos de los sitios web que visitamos diariamente. La gran mayoría de los widgets de escritorio que pueden instalarse en el ordenador han sido desarrollados con JavaScript, así como miles y miles de aplicaciones para dispositivos móviles y un amplio elenco de características de programas informáticos (como Photoshop, Dream-weaver, Acrobat, entre otros).
A diferencia de la mayoría de los libros que conforman esta colección, el que tiene usted entre las manos ha sido diseñado como guía de consulta de los principales elementos del lenguaje de programación JavaScript. Es por eso que no encontrará en estas páginas ejercicios resueltos, sino únicamente explicaciones detalladas, con ejemplos, de funciones, operadores, métodos, etc. de este lenguaje de programación tan utilizado para conseguir interactividad.
001 Qué es JavaScript
002 La sintaxis de JavaScript
003 Comentarios, expresiones y sentencias
004 El uso del punto y coma en JavaScript
005 Datos primitivos
006 Objetos en JavaScript
007 Valores y objetos indefinidos
008 Comprobar valores indefinidos o nulos
009 Objetos envolventes para primitivos
010 Operadores de asignación
011 Operadores de igualdad
012 Operadores de comparación
013 El caso del operador +
014 Operadores lógicos
015 Operadores numéricos y especiales
016 Comprobar datos en JavaScript
017 El operador ‘instanceof’
018 Operadores de objeto
019 Conocer los tipos de datos booleanos
020 Convertir valores en booleanos
021 Los operadores || y !
022 Trabajar con números
023 Convertir datos a números
024 La función parseFloat()
025 Las funciones parseInt() e isNaN()
026 Valores numéricos especiales
027 Cómo se representan los números
028 Errores de redondeo
029 Números enteros
030 Números enteros seguros
031 Convertir datos a números enteros
032 Operadores aritméticos
033 Operadores bit a bit
034 Propiedades del objeto Number
035 Métodos de números primitivos
036 Algunas funciones numéricas
037 Cadenas de caracteres
038 Secuencias de escape en strings
039 Convertir valores en strings
040 Comparar cadenas de caracteres
041 Combinar cadenas de caracteres
042 Métodos del constructor String
043 Propiedades y otros métodos de String
044 Métodos para transformar strings
045 Buscar, comparar y comprobar strings
046 Sentencias de bucle
047 Sentencias condicionales
048 El caso de la sentencia with
049 Gestionar excepciones en JavaScript
050 Crear un objeto de error
051 Funciones en JavaScript
052 Definición de funciones
053 ¿Declaración o expresión de funciones?
054 Controlar parámetros nulos o extra
055 Parámetros con nombre
056 Declaración de variables
057 El ámbito de las variables
058 Variables globales y locales
059 Declaración de variables con var
060 Objetos sencillos
061 Convertir valores en objetos
062 El parámetro this en funciones y métodos
063 Relación de prototipo entre objetos
064 Compartir datos entre objetos
065 Crear nuevos objetos a partir de prototipos
066 Repetir y detectar propiedades I
067 Repetir y detectar propiedades II
068 Proteger objetos
069 Constructores de objetos
070 Herencias entre constructores
071 Métodos comunes a todos los objetos
072 Trabajar con matrices
073 Crear matrices
074 La propiedad length en una matriz
075 Huecos en matrices
076 Operaciones para gestionar huecos
077 Añadir y eliminar elementos de una matriz
078 Ordenar y alterar elementos en una matriz
079 Dividir y juntar elementos en matrices
080 Buscar valores en una matriz
081 Examinar, transformar y reducir matrices
082 Expresiones regulares
083 Sintaxis de las expresiones regulares
084 Crear expresiones regulares
085 Trabajar con fechas en JavaScript
086 El constructor Date
087 Métodos del constructor Date
088 Métodos para el prototipo Date
089 Formatos para la fecha
090 Formatos para mostrar la hora actual
091 Trabajar con valores temporales
092 El objeto Math y sus propiedades
093 Funciones numéricas
094 Funciones trigonométricas
095 Otras funciones matemáticas
096 Qué es el JSON
097 Métodos utilizados por el formato JSON
098 Funciones globales no constructoras
099 Evaluar código dinámicamente
100 Unicode y JavaScript
IMPORTANTE
Resulta de gran importancia saber queJavaScriptno tiene nada que ver con Java, otro lenguaje de programación creado por la compañía SunSystems. De hecho, cabe destacar que, en sus inicios, Netscape bautizó su lenguaje de programación comoLiveScripty que no fue hasta más adelante, por motivos de márketing, que la compañía decidió cambiar el nombre a su producto, asemejándolo al del lenguaje más exitoso en aquel momento.
JAVASCRIPT ES UN LENGUAJE DE PROGRAMACIÓN que permite crear programas y sitios web prácticamente idénticos a cualquier aplicación de escritorio, en cuanto a su respuesta se refiere. JavaScript aporta animaciones, interactividad y efectos visuales a un documento HTML, la base de cualquier sitio o página web. JavaScript forma parte de un conjunto de elementos formado por HTML y CSS: HTML aporta la estructura, CSS, el estilo y JavaS-cript, el funcionamiento y la interactividad con el usuario.
1. JavaScript fue creado en el año 1995 por la compañía Netscape, responsable de uno de los primeros navegadores que aparecieron en el mercado, Netscape Navigator, competencia directa de Microsoft Internet Explorer. Dicha competencia provocó que el funcionamiento de JavaScript en dichos navegadores no fuera tan satisfactorio como se hubiera esperado de un lenguaje de programación tan potente. Afortunadamente, hoy en día, todos los navegadores, incluidos Firefox, de Mozilla, y Safari, de Apple, aceptan programas oscriptsgenerados con JavaScript.
Logotipo de la compañía Netscape, creadora del navegador Navigator y del lenguaje de programación JavaScript.
2. Teniendo en cuenta que el principal objetivo de JavaScript es la interactividad en programas y sitios web, a continuación veremos algunas de las aplicaciones en las cuales podemos encontrar claramente este increíble lenguaje de programación.
3. Gracias a JavaScript, es posible que una página muestre el importe total de una serie de compras, así como el IVA correspondiente aplicado, justo en el momento en que el usuario pulsa el botónComprar.
4. Otro ejemplo sería al rellenar un formulario, en aquellos casos en que el usuario no completa los campos necesarios o lo hace de un modo no satisfactorio. En estos casos, el programa lanzará el correspondiente mensaje de error también generado con JavaScript.
5. Google Maps es otro claro ejemplo de cómo JavaScript permite interactuar con el usuario en tiempo real.
Google Maps utiliza JavaScript para conseguir una interacción con el usuario en tiempo real sin necesidad de cambiar de página web.
6. Pero no sólo encontramos JavaScript en las entrañas de muchos de los sitios web que visitamos diariamente. La gran mayoría de los widgets de escritorio que pueden instalarse en el ordenador han sido desarrollados con JavaScript, así como miles y miles de aplicaciones para dispositivos móviles y un amplio elenco de características de programas informáticos (como Photoshop, Dreamweaver, Acrobat, entre otros).
7. JavaScript es la llave a un mundo de interactividad prácticamente infinito y espectacular. Compruébelo usted mismo y... ¡disfrute!
IMPORTANTE
Inmediatamente después de que Netscape presentara su sorprendente lenguaje de programación JavaScript, la compañía Microsoft también se propuso atacar el mercado con su propio lenguaje de programación y lanzó jScript. En este caso, jScript estaba incluido en el navegador Internet Explorer.
IMPORTANTE
El uso del signo de puntuación ; (punto y coma) al finalizar cada sentencia no es obligatorioen JavaScript, aunque sí recomendable.
CUANDO HABLAMOS DE SINTAXIS DE UN lenguaje de programación nos estamos refiriendo al conjunto de reglas en que se basa la escritura del código fuente de los diferentes programas generados. La sintaxis de JavaScript es muy parecida a la de otros lenguajes de programación, como Java o C.
1. En este ejercicio trataremos de definir de forma clara y concisa en qué se basa la sintaxis básica de JavaScript. Aunque pueda parecer lo contrario, la sintaxis de JavaScript es bastante sencilla. Para empezar, podemos indicar que los intérpretes de JavaScript no tienen en cuenta los espacios en blanco ni las nuevas líneas, lo que supone que el desarrollador puede organizar el código como mejor le convenga.
2. JavaScript hace distinción entre mayúsculas y minúsculas, lo que significa que si el código no se escribe según esta distinción, el programa no funcionará según lo previsto.
La distinción entre mayúsculas y minúsculas debe realizarse y respetarse durante todo el script.
3. Otro aspecto a tener en cuenta es que las variables creadas pueden almacenar diferentes tipos de datos, por lo que no es necesario definirlas al escribir el código.
4. JavaScript es un lenguaje de programación totalmente dinámico. ¿Qué significa esta afirmación? Sencillamente significa que todo cuanto se escribe en el código puede ser cambiado en cualquier momento.
5. Los comentarios también forman parte de la sintaxis de JavaS-cript. Resultan de gran importancia porque permiten al desarrollador realizar anotaciones referentes a la escritura del código, utilizando para ello unas normas imprescindibles. Como veremos en el ejercicio siguiente, los comentarios se escriben siguiendo una puntuación básica concreta.
6. Las variables también son parte de la sintaxis de Javascript. Las variables se declaran mediante la terminologíavare incluyen siempre valores. Los cinco tipos de valores fundamentales son booleanos, números, cadenas de caracteres, objetos plenos y matrices; todos estos tipos serán debidamente descritos en este libro.
7. El desarrollador “inventa” el nombre de las variables declaradas, siempre teniendo en cuenta dos aspectos fundamentales: que dicho nombre sólo puede contener letras, números y los signos $ y _ (guión bajo) y que el primer caracter no puede ser un número. Una declaración de variable sería la siguiente:
var abc;
8. Y la asignación de valores, podría ser como sigue:
9. Como en las variables, las funciones adoptan un nombre único para poder ser utilizadas dentro del código. Tras este nombre, es preciso escribir los parámetros de la función entre paréntesis. Las instrucciones que describen la función se escriben entre símbolos de llaves { }.
IMPORTANTE
Loscomentariosinsertados por el programador dentro del código pueden ser frases enteras o palabras sueltas.En cualquier caso, siempre ayudarán a aclarar partes concretas del código, sobre todo en caso de necesitar modificarlo o en el momento de su depuración.
LOS COMENTARIOS, LAS EXPRESIONES Y LAS sentencias forman parte de la sintaxis básica de JavaScript. En ocasiones existe cierta confusión entre la definición y el uso de expresiones y sentencias (la asignación de comentarios queda totalmente clara, como se verá en este ejercicio); en estas páginas trataremos de distinguir por completo ambos elementos.
1. Empezamos este ejercicio hablando de los comentarios. Loscomentariosforman parte del código JavaScript pero no son interpretados por los navegadores web. Los programadores los utilizan sencillamente para facilitar la lectura del código en determinadas partes del mismo.
2. Existen dos tipos de comentarios de JavaScript y cada uno de ellos se representa con una puntuación distinta. El primer tipo se utiliza para comentar únicamente una línea de código y se indica con una doble barra, //.
Cuando se utiliza un editor de textos web, loscomentariosse muestran de color gris, para que sea más fácil reconocerlos en el momento de la depuración o modificación.
3. El segundo tipo de comentario se utiliza para comentar más de una línea de código y requiere, en este caso, de una puntuación de apertura, /*, y otra de cierre, */.
4. El uso de comentarios en un documento de código JavaScript es ilimitado e, incluso, recomendable en aquellos casos en que se prevean confusiones en el momento de la interpretación del mismo.
5. Hablemos ahora de las expresiones y las sentencias, que, en determinados casos y tal como hemos indicado en la introducción de este ejercicio, pueden confundirse. Lassentenciasson instrucciones que se incorporan en el código para que éste ejecute algo, por ejemplo, que realice una acción concreta.
6. Un ejemplo bien conocido de sentencia es la denominada condicional, la cual se utiliza para determinar si algo es verdadero o si existe. En función de si la condición es verdadera o no, se ejecutarán o no las acciones especificadas, ya sean funciones o expresiones. La sentencia condicional esif.
Podemos decir que un programa o un script es una secuencia de sentencias.
7. A diferencia de las sentencias, lasexpresionesson cualquier combinación de símbolos de JavaScript que representan un valor. Así, las expresiones tienen valores (de los cuales hablamos en el ejercicio anterior) y los valores y las propiedades tienen tipos.
8. Una expresión puede estar formada por diferentes tipos de elementos: operadores y operandos, valores, funciones y procedimientos.
Los bucles (loops) también son un ejemplo de sentencia en JavaScript.
En la descripción de estas dos variables, todo cuanto se encuentra a la derecha del signo =, el cual indica la descripción de la variable en sí misma, es una expresión.
9. Dicho esto, podemos destacar que cuando JavaScript espera la aparición de una sentencia, es posible que aparezca una expresión, pero no al contrario: no es posible escribir una sentencia cuando el programa está esperando una expresión.
10. A menudo, y debido a su construcción, se utilizan erróneamente dos tipos concretos de expresiones como si fueran sentencias: los objetos literales (expresiones) se confunden con los bloques (sentencias) y las expresiones de funciones con nombre se confunden con declaraciones de funciones, las cuales son sentencias.
EL USO DEL PUNTO Y COMA al final de cada sentencia no es obligatorio en el código JavaScript, aunque sí altamente recomendable. En este ejercicio le mostraremos por qué es recomendable utilizar este signo de puntuación y en qué casos precisamente no debe utilizarse.
1. Con el fin de evitar posibles errores detectados por el navegador web en el momento de la interpretación, las diferentes instrucciones contenidas en nuestros scripts deben separarse adecuadamente. ¿Cómo? Mediante un punto y coma al final de cada línea.
2. Sin embargo, existen ciertas excepciones a esta norma del punto y coma. En concreto, las sentencias que finalizan con un bloque no deben llevar punto y coma al final de las mismas. Y todavía podemos concretar más esta excepción: sólo los bucles (comoforywhile), los conectores (comoif,switchotry) y las declaraciones de funciones que finalizan con un bloque no se cierran con un punto y coma.
3. Éste sería un ejemplo de una sentencia con un bucleforque no finaliza con un punto y coma:
for (var num=11; num<=20; num++) {
document.write(‘<h3>Número ‘ + num + ‘<br></h3>’);
}
4. Vea que la sentencia finaliza con la llave de cierre, y no con este signo y un punto y coma. Seguidamente, incluimos un ejemplo de una sentencia con un conector condicional como ifque tampoco finaliza con un punto y coma:
document.write(“<p>¡Coincido contigo! China también</p>”);
}
5. Por último, un ejemplo de la tercera de las excepciones listadas en el punto 2, es decir, una declaración de función, serían las líneas siguientes:
function printToday() {
}
6. Sin embargo, sepa que la inserción de un punto y coma en estos casos concretos no conlleva un error de sintaxis, debido a que dicho signo se considera una sentencia vacía y las sentencias vacías pueden aparecer en el punto en que el código prevé encontrar una sentencia.
7. JavaScript cuenta con un mecanismo que se ocupa de insertar un punto y coma allá donde prevé que es necesario. Este mecanismo se denomina ASI, siglas del término en inglésAutomatic Semicolon Insertion, y aunque a primera vista puede resultar muy útil, en ocasiones produce resultados inesperados. Por esta razón, lo mejor y más recomendable es utilizar el punto y coma nosotros mismos allí dónde sea necesario.
IMPORTANTE
Básicamente, el mecanismo ASI funciona al determinar el punto en que una sentencia finaliza y le agrega un punto y coma.
COMO LA MAYORÍA DE LENGUAJES DE programación, Javascript cuenta con los tipos de datos habituales de este tipo de lenguajes: booleanos, cadenas de caracteres, números, entre otros. Estos datos se confunden en ocasiones con otros elementos propios también de este lenguaje: los objetos. En éste y en el siguiente ejercicio, trataremos de describir y distinguir ambos tipos de elementos.
1. Como hemos indicado en la introducción, JavaScript cuenta con los siguientes tipos de datos: booleanos, números, cadenas de caracteres, matrices y los tipos especialesnullyundefined. Todos estos datos, que se denominan primitivos, tienen propiedades, las cuales, a su vez, tienen un nombre y un valor.
Debe saber que en realidad los datos primitivos no tienen propiedades, sino que las toman prestadas de los constructores que los envuelven. Hablaremos de dichos constructores más adelante en este libro. Imagen: aprenderaprogramar.com.
2. Los datos primitivos tienen unas características que los identifican. Veamos cuáles son, aunque sepa que cada uno de ellos será tratado ampliamente más adelante en este libro.
3. El tipo de dato booleano (en inglés,boolean) acepta sólo dos valores:
true
false
4. Y normalmente se utilizan en sentencias condicionales.
5. Los tipos numéricos (en inglés,number) representan cualquier número entero o de punto flotante, es decir, con decimales (23.7).
Normalmente, el tipo de datosNumberno utiliza comillas, como en el caso de las cadenas de caracteres. En este ejemplo, las comillas se utilizan porque los valores numéricos dependen del elemento Number, el cual lo utiliza para realizar un cálculo matemático.
6. Por su parte, las cadenas de caracteres (en inglés,string) alma-cenan, como su nombre indica, una secuencia de caracteres, teniendo en cuenta que dicha secuencia puede estar vacía. Las cadenas de caracteres se representan en JavaScript entre comillas, ya sea simples o dobles. Por ejemplo:
7. Da igual el tipo de comillas que utilice, aunque sí es importante que sea coherente dentro del documento con este uso. Existen dos tipos de datos primitivos más que se utilizan par indicar la falta de información. Se trata de los valoresundefinedynull. El primero significa que no existe ningún valor, ni tipo de dato ni objeto, en la sentencia, y el segundo, que no existe ningún objeto.
8. De forma común, todos los datos primitivos tienen la característica de que contienen una comparación entre sus valores, que sus propiedades no pueden ser ni modificadas, ni alteradas ni eliminadas y, por último, que son predeterminados en JavaScript, lo que significa que el usuario no puede crear sus propios datos primitivos.
COMO HEMOS INDICADO EN EL EJERCICIO anterior, JavaScript cuenta con datos primitivos y con objetos. Todo cuanto no puede situarse dentro de alguno de los tipos de datos descritos en las páginas anteriores puede considerarse un objeto.
1. Existen tres tipos de objetos en JavaScript, considerados más comunes, que se mueven con los denominados constructores: los objetos simples, las matrices y las expresiones regulares. Los objetos tiene propiedades y valores y, a diferencia de los datos primitivos, sí pueden ser creados por el programador. Veamos paso a paso cada uno de estos tipos de objetos.
2. El constructorObjectenvuelve los objetos simples, los cuales se representan mediante nombres o datos. Un ejemplo de un objeto simple sería el siguiente:
{
nombre: ‘Mónica’,
apellido: ‘González’
}
3. Este objeto tiene dos propiedades (nombreyapellido) y cada una de ellas, un valor (‘Mónica’y‘González’). Como hemos indicado, es el programador quien decide el nombre de los objetos, siendo consecuente en su uso en todo el script.
Fuente de esta imagen: aprenderaprogramar.com
Ésta sería la descripción de un pequeño script que cuenta con una variable que contiene un objeto con varias propiedades y valores.
4. El segundo tipo destacable de objetos son las matrices, en inglésarrays. Una matriz es, sencillamente, una lista de elementos. Las matrices son la mejor forma de almacenar más de un valor en un mismo lugar, puesto que de otro modo sería necesaria crear una variable para cada elemento de la lista. Las matrices se envuelven dentro del constructorArrayy tienen el aspecto siguiente:
[‘lunes’, ‘martes’, ‘miércoles’, ‘jueves’, ‘viernes’]
5. Todos los elementos de una matriz corresponden a un número en un índice, siendo el primero de estos números el 0; esto significa que, en nuestro ejemplo, el elemento‘lunes’es el número 0, el elemento‘martes’, el 1, y así sucesivamente.
Los elementos que forman una matriz se gestionan mediante valores de índice, siempre recordando que el primer elemento corresponde al valor 0, no 1.
6. El tercer tipo de objetos de JavaScript es el de las expresiones regulares, regidas por el constructorRegExp. Las expresiones regulares están formadas por caracteres simples,/abc/, o por una combinación de caracteres simples y especiales,/a*b_c/. Una expresión regular sirve para localizar patrones en una cadena de texto, para comprobar que una cadena tiene una determinada estructura o para verificar que una dirección de correo electrónico está escrita correctamente.
La imagen 5 muestra un ejemplo de código en el cual se utiliza una expresión del tipoRegExp,/@/, para verificar que un campo de e-mail cuenta con una dirección de correo electrónico válida, es decir, con el símbolo @.
7. Las características que comparten estos tres tipos de objetos son las siguientes: cada objeto tiene su propia identidad y, por tanto, pueden compararse; es posible modificar las propiedades de los objetos, añadir de nuevas y eliminar las sobrantes, y los constructores pueden ser considerados como implementaciones de tipos personalizados.
IMPORTANTE
Existe un listado de caracteres especiales que pueden utilizarse en expresiones regulares. Tenga en cuenta que cada uno de estos caracteres se utiliza en combinación con caracteres simples y tienen un significado concreto. Los caracteres especiales que se pueden utilizar en JavaScript para generar expresiones regulares son los siguientes: < $ ^ . * + ? [ ] >
EN UN EJERCICIO ANTERIOR HEMOS TENIDO la oportunidad de mencionar dos tipos de valores que se utilizan en JavaScript para indicar la falta de información en un script. Se trata de los valores (o, también podríamos denominarlos, “no-valores”)nullyundefined.
1. En este ejercicio trataremos con todo detalle los dos “no valores” que JavaScript utiliza para indicarnos que falta información en el script:nullyundefined.Undefinedsignifica que no hay ni un valor primitivo ni un objeto, y podemos encontrarlo en variables sin inicializar, en una falta de parámetros o en una omisión de propiedades. Por su parte,nullsignifica que no hay ningún objeto, y podemos encontrarlo en aquellas partes del script en que se espera la existencia de un objeto, sea del tipo que sea.
2. Así, podemos resumir esta descripción diciendo queundefinedindica la no existencia ynull, el vacío.
3. A continuación veremos en ejemplos los casos en que se generarán los valoresundefinedynull. Empezaremos por las variables no inicializadas comparadas con otras que sí lo han sido:
var caso3;
Con esta comparativa puede ver claramente queundefinedes un valor, aunque sea “sin valor”.
4. La variablecaso1contiene datos del tipoNumber; la variablecaso2contiene datos del tipoString, mientras que la variablecaso3no ha sido inicializada y es del tipoundefined.
5. El caso de la falta de parámetros también produce variables de este tipo. Un ejemplo sería el siguiente:
6. En efecto, la variablecaso1sí ha sido inicializada pero no muestra ningún parámetro, por tanto, es del tipoundefined.
7. En JavaScript, el valornullse considera un valor especial, puesto que en sí mismo es un valor aunque indica la falta de contenido. En nuestras variables de ejemplo, el valornullsería como sigue:
8. Quizás se estará preguntando por qué JavaScript dispone de estos “no-valores” entre sus elementos. La razón se remonta a los inicios de este lenguaje de programación. JavaScript adoptó el procedimiento de dividir los valores en primitivos y objetos, así como de utilizar el valor para indicar la ausencia de objetos con el valornull.
9. Así, el valornullse convirtió en 0 (cero) si daba como resultado un número:
Number(null)//El resultado sería 0
5 + null // El resultado sería 5
10. Y se inventó un nuevo no-valor, undefined, para aquellos casos en que el resultado no debiera ser un número, es decir, para variables sin inicializar y para la omisión de propiedades:
Number(undefined) // El resultado sería NaN (Not a Number)
5 + undefined // El resultado sería NaN
EN ESTE EJERCICIO LE MOSTRAREMOS CÓMO puede comprobar si los valoresundefinedynullexisten en un script por separado o bien si uno de los dos valores existe.
if(caso1===null) {
}
//Siendo “caso1” el nombre de la variable que estamos analizando
2. En el caso en que la variable devuelva, efectivamente, el valor null, será preciso realizar cuanto se requiera para que el script funcione correctamente.
3. También podemos comprobar de la existencia de una variable undefinedutilizando el mismo comparador que para el valornull:
if(caso1===undefined) {
}
En ambos casos (1 y 3), el término caso1correspondería al nombre de una variable ficticia.
4. A continuación, le mostramos un ejemplo más gráfico de la comprobación de un objeto indefinido:
alert(“caso1 no está definido.”);
}
5. Sin embargo, no es ésta la única forma de realizar esta comprobación. El operadorTypeof