Aprender Javascript Avanzado con 100 ejercicios prácticos

Text
Read preview
Mark as finished
How to read the book after purchase
Aprender Javascript Avanzado con 100 ejercicios prácticos
Font:Smaller АаLarger Aa

Aprender
JavaScript Avanzado
con 100 ejercicios prácticos


Aprender JavaScript Avanzado con 100 ejercicios prácticos

© 2015 MEDIAactive

Primera edición, 2015

© 2015 MARCOMBO, 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».

Presentación

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.

Cómo funcionan los libros “Aprender...”

Índice

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

001 Qué es JavaScript

IMPORTANTE

Resulta de gran importancia saber que JavaScript no 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 como LiveScript y 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 o scripts generados 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ón Comprar.


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.


002 La sintaxis de JavaScript

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ía var e 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:

var abc = alfabeto;


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 { }.


003Comentarios, expresiones y sentencias

IMPORTANTE

Los comentarios insertados 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. Los comentarios forman 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, los comentarios se 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. Las sentencias son 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 es if.


Podemos decir que un programa o un script es una secuencia de sentencias.

7. A diferencia de las sentencias, las expresiones son 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.

IMPORTANTE

Es posible escribir sentencias condicionales utilizando una expresión con un operador condicional. Por ejemplo, éstas serían las líneas de código con la sentencia condicional if : var premio;

if (si) {

premio = ¡Enhorabuena!’;

} else {

premio =’Lo sentimos’;

}

Y ésta la misma línea con el operador condicional:

var premio = si ?

‘¡Enhorabuena!’ : ‘Lo sentimos’;

(Todo se escribe en una misma línea.)

004 El uso del punto y coma en JavaScript

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 (como for y while), los conectores (como if, switch o try) 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 bucle for que 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 if que tampoco finaliza con un punto y coma:

if (bestCountry == ‘Canadá’) {

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() {

var hoy = new Date(); document.write(hoy.getDate());

}


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és Automatic 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.