2. El Lenguaje javascript (básico)¶
Este es un tema de iniciación al lenguaje Javascript. Se busca tener los conocimientos del lenguaje para poder realizar los ejercicios básicos de Ejercicios Genéricos de Programación.
Me baso en el excelente tutorial de W3Schools para hacer referencia a cada uno de los elementos del lenguaje. Es simplemente un esquema ordenado del tutorial. Puedes consultar también el excelente curso de Arkaitz Garro
Requisitos Previos
Necesitas unos conocimientos básicos previos de aprender a programar. Si no los tienes, tampoco pasaría nada pero necesitarás más tiempo para adquirir los conocimientos de cada sesión de clase y necesitas mayor supervisión.
Esfuerzo Necesario
El curso está organizado en 8 sesiones de clase. Cada clase (sesión) implica una dedicación de entre 2 y 4 horas.
La dedicación depende del conocimiento previo, motivación y capacidad de aprendizaje del estudiante para esa sesión en concreto.
2.1. El lenguaje Javascript¶
Visión General
Historia
Características
Uso cada vez más amplio (cliente y servidor)
Ver ejemplos de código
Una documentación muy completa sería la de MDN Web Docs o la de W3Schools
Mi primer programa -> js_intro:
Instalarlo. Ya está en el navegador incluido (hay diferentes motores JS)
Usas la consola o …
… incluyes código en el HTML -> js_whereto
Que escriba algo (hay diferente alternativas) -> js_output
Comentar el código -> js_comments
Instrucciones ( js_statements) y sintaxis ( js_syntax)
Actividad T02. Ejercicios de Programación Básicos con JS
Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:
Pruebas con lo propone el tutorial
Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)
2.2. Variables, Datos y Operadores¶
Variables en JS -> js_variables
Constantes -> js_const
Predefinir variables (let) -> js_let
Operadores (js_operators):
Aritméticos -> js_arithmetic
Asignación -> js_assignment
Precedencia -> js_precedence (mejor usa paréntesis)
Ámbito de las variables -> js_scope ( Variable Scope )
Block Scope
Function Scope
Global Scope
Tipos de datos (js_datatypes):
Lenguaje débilmente tipado y muy dinámico (puedo cambiar el valor)
Primitivos:
Boolean typeof false -> js_booleans
Number (typeof 3.14) -> js_numbers
String (typeof «John») -> js_strings
(y Symbol / BigInt)
null vs undefined (no son lo mismo)
Objetos. Todo es un objeto en JS -> js_objects
Actividad T02. Ejercicios de Programación Básicos con JS
Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:
Pruebas con lo propone el tutorial
Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)
2.3. Estructuras de Control y Repetición¶
De Control:
-> js_if_else
-> js_switch
De Repetición:
-> js_loop_for
Usando operadores:
in -> js_loop_forin
of -> js_loop_forof
Para modificar el flujo (pensar bien antes de usar): js_break
Actividad T02. Ejercicios de Programación Básicos con JS
Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:
Pruebas con lo propone el tutorial
Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)
2.4. Programación Modular (Funciones)¶
Para unos parámetros (o argumentos) de entrada la función devuelve una salida -> js_functions
Los parámetros se convierten en variables locales (paso por valor).
Una variable puede apuntar a una función, es decir, una función es un objeto
Son algo fundamental en el uso de JS ( Funciones en JS ) y la base de la programación funcional en JS
Distinguir entre librerías (típicamente agrupación de funciones) y APIs (más basadas en objetos y vinculadas a un recurso)
Tus librerías (en Javascript)
Librerías de terceros (añaden funcionalidad)
APIs del Navegador (las ofrece el navegador)
APIs de terceros (servicios externos)
Frameworks JS. Paquetes HTML/CSS/JS para construir aplicaciones
Actividad T02. Ejercicios de Programación Básicos con JS
Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:
Pruebas con lo propone el tutorial
Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)
2.5. Cadenas de Caracteres (Strings)¶
String = secuencia de caracteres -> js_strings
Aunque puedes usar una especie de plantillas -> js_string_templates
Con un montón de funciones (bueno métodos del objeto String) para gestionarlas -> js_string_methods
Actividad T02. Ejercicios de Programación Básicos con JS
Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:
Pruebas con lo propone el tutorial
Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)
2.6. Arrays¶
Son una estructura de datos muy utilizada (Objeto Array) js_arrays
Suelen declararse como constantes
Y hay un montón de funciones para gestionarlos -> js_array_methods
Actividad T02. Ejercicios de Programación Básicos con JS
Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:
Pruebas con lo propone el tutorial
Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)
2.7. Ejemplos de Funciones¶
Para gestionar cadenas de caracteres -> js_string_methods
Con Números:
con el objeto directamente (js_number_methods)
o con Funciones matemáticas -> js_math
Puedes usar tu librería propia e incluirla en tu programa
Actividad T02. Ejercicios de Programación Básicos con JS
Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:
Pruebas con lo propone el tutorial
Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)
2.8. Uso de regexp¶
Regexp ( Expresiones regulares ) son una secuencia de caracteres que define un patrón de búsqueda -> js_regexp
Muy útil tanto para buscar como para reemplazar texto (que es el tipo de datos más común en la web)
En JS puedes probar a aprender, diseñar y probar en regexr
Actividad T02. Ejercicios de Programación Básicos con JS
Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:
Pruebas con lo propone el tutorial
Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)