04 JavaScript
04 JavaScript
04 JavaScript
ECMAScript 6 3
DOM 4
Hello World 6
Cambiar los atributos del HTML 6
Ocultar o mostrar elementos HTML 8
let y Const 9
Salida de JS Mensaje en ventana emergente (Ver código fuente): 10
Strings 10
Cadenas de más de una línea - Template Strings 10
include 10
startsWith() 10
endsWith 11
repeat 11
Eventos 11
Event.target 11
Funciones 13
Funciones Arrow 13
Utilizando map y function 14
Condicionales 14
Ciclos o Loop 15
Lista de productos 1 - for 15
Lista de productos 2 for/in 16
Array 16
Set 17
Colección de valores que son únicos 17
Errors 17
Operadores de listas 19
map, filter y reduce 19
Función ejecutada inmediatamente IIFE (immediately invoked function expression) 19
Promesa 20
Parámetros Rest y Spread (sintaxis extendida) 22
Programación Orientada a Objetos 24
Classes 24
Qué es
También conocido como JavaScript 6, es un lenguaje de secuencias de comandos que te permite crear
contenido de actualización dinámica, controlar multimedia, animar imágenes y prácticamente todo lo
demás.
Es gratuito, ha sido utilizado para el desarrollo de grandes y reconocidas plataformas, como Paypal,
Netflix, LinkedIn y Uber (se ejecutan con JavaScript-Node.js). Eso significa que si dominas este
lenguaje, estarás al nivel de estos desarrollos de talla mundial. Es versátil, multiparadigma, imperativo,
dinámico en cuanto a tipos; orientado a eventos y objetos. Además, a diferencia de otros lenguajes, tiene
un ciclo de retroalimentación rápido.
Aprendiendo un único lenguaje serás capaz de llegar a cualquier propósito que te propongas, y podrás
desarrollarte como Frontend Developer, Backend Developer o Fullstack Developer.
"El Modelo de Objetos de Documento (DOM) del W3C es una plataforma e interfaz independiente del
lenguaje que permite a los programas y scripts acceder y actualizar dinámicamente el contenido, la
estructura y el estilo de un documento".
El DOM HTML es un modelo de objetos estándar y una interfaz de programación para HTML. Se
define:
En otras palabras: HTML DOM es un estándar sobre cómo obtener, cambiar, agregar o eliminar
elementos HTML.
Con el modelo de objetos, JavaScript obtiene todo el poder que necesita para crear HTML dinámico:
● JavaScript puede cambiar todos los elementos HTML de la página
● JavaScript puede cambiar todos los atributos HTML en la página
● JavaScript puede cambiar todos los estilos CSS en la página
● JavaScript puede eliminar elementos y atributos HTML existentes
● JavaScript puede agregar nuevos elementos y atributos HTML
● JavaScript puede reaccionar a todos los eventos HTML existentes en la página.
● JavaScript puede crear nuevos eventos HTML en la página.
console.log("Hello world");
document.write("Hello world")
<body>
<button
onclick="document.getElementById('myImage').src='zapatoRojo.png'">Zapato
<button
onclick="document.getElementById('myImage').src='zapatoNegro.png'">Zapat
o negro</button>
</body>
<body>
</body>
<h2>JavaScript en el body</h2>
<p id="demo">Párrafo</p>
<script>
function myFunction() {
document.getElementById("demo").innerHTML = "Párrafo cambiado.";
}
</script>
let y Const
Let junto con const son 2 palabras claves introducidas en ECMAScript 2015, let significa variable y
const constante, ambas con alcance de bloque o Block Scope en JavaScript
<p id="demo"></p>
<script>
var x = 10;
// aquí x es 10
{
let x = 2;
// Aquí x es 2
}
// Aquí x is 10
document.getElementById("demo").innerHTML = x;
</script>
<p id="demo"></p>
<script>
var x = 10;
// Aquí x es 10
<p>Primer párrafo</p>
<script>
alert(5 + 6);
</script>
Strings
Cadenas de más de una línea - Template Strings
Estos caracteres hacen parte de la plantilla literal o template strings. Las plantillas literales se
delimitan con el carácter de comillas o tildes invertidas (` `) (grave accent), en lugar de las comillas
sencillas o dobles.
console.log(`línea 1 de la cadena de texto
línea 2 de la cadena de texto`);
include
Este método determina si una cadena es incluida dentro de otra cadena, devolviendo true o false
startsWith()
Este método determina si una cadena inicia con los caracteres de una cadena específica, devolviendo
true o false
endsWith
Este método determina si una cadena finaliza con los caracteres de una cadena específica, devolviendo
true o false
repeat
Este método repite una cadena o patrón tantas veces se especifique
Eventos
Event.target
function hide(e){
// e.target se refiere cuando se clickea el elemento <li>
// Esto es diferente de e.currentTarget que se referiría al padre
<ul> en este contexto
e.target.style.visibility = 'hidden';
}
// Incluir el 'listener' a la lista
// Se ejecutará cuando se haga click en cada <li>
ul.addEventListener('click', hide, false);
Funciones Arrow
Estas funciones fueron introducidas en ES6, no requieren la palabra function ni return, quedando este
implícito.
Son una alternativa compacta a una función tradicional, son limitadas y no se pueden usar en todas las
situaciones.
<script> <script>
let hello; let hello;
document.getElementById("demo").inn document.getElementById("demo").inn
erHTML = hello(); erHTML = hello();
</script> </script>
//producto en descuento
let productos = ['Zapatos', 'Camisas','maletines'];
productos = productos.map(producto => `${producto} en descuento. `);
// console.log(productos);
Condicionales
Saludo con condicionales
<p id="demo"></p>
<script>
let dia;
switch (new Date().getDay()) {
case 0:
dia = "Domingo";
break;
case 1:
dia = "Lunes";
break;
case 2:
dia = "Martes";
break;
case 3:
dia = "Miércoles";
break;
case 4:
dia = "Jueves";
break;
case 5:
dia = "Viernes";
break;
case 6:
dia = "Sábado";
break;
default:
dia = "Dia no encontrado";
break;
}
document.getElementById("demo").innerHTML = "Hoy es " + dia;
</script>
Ciclos o Loop
Lista de productos 1 - for
<p id="listaP1"></p>
<script>
<p id="listaP2"></p>
<script>
let txt = "";
let producto = {nombrep:"Zapatos deportivos", color:"Rojo",
codigo:1525};
let x;
for (x in producto) {
txt += producto[x] + " ";
}
document.getElementById("demo").innerHTML = txt;
</script>
Array
console.log (
[1, 2, 3, 5, 9].indexOf(2) > -1
);
Esto nos devuelve un true en consola
console.log (
[1, 2, 3, 5, 9].indexOf(10) > -1
);
Esto nos devuelve un false en consola
console.log (
[1, 2, 3, 5, 9].find(item => item > 2 )
);
Esto nos devuelve el primer número mayor que 2 -> 3
console.log (
[1, 2, 3, 5, 9].findIndex(item => item > 2 )
);
Esto nos devuelve la posición del primer número mayor que 2 -> 2
Errors
try Permite probar un bloque de código en busca de errores.
catch Permite manejar el error.
throw Permite crear errores personalizados.
finally Permite ejecutar código, después de intentar y capturar, independientemente del
resultado.
<p id="demo"></p>
<script>
try {
mensajeAlerta("Esto es un error!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
let tareas = [
{ 'nombre' : 'Apertura de la tienda', 'duracion' : 15 },
{ 'nombre' : 'Revisión de inventarios', 'duracion' : 60 },
{ 'nombre' : 'Pago a proveedores', 'duracion' : 240 }
];
//Se creará una nueva lista con el nombre de las tareas
anteriores
let tareas_nombres = [];
// Usando forEach
tareas.forEach(function (tarea) {
tareas_nombres.push(tarea.nombre);
});
document.getElementById("opLista").innerHTML=tareas_nombres;
// usando map
let tareas_nombres2 = tareas.map(function (tarea) {
return tarea.nombre;
});
document.getElementById("opListaMap").innerHTML=tareas_nombres2;
//Usando filter listaremos las tareas que llevan una hora o más para
solucionar
let tareas_dificiles = tareas.filter(function (tarea) {
return tarea.duracion >= 60;
});
// Using ES6
let tareas_dificiles2 = tareas.filter((tarea) => tarea.duracion >= 60 );
document.getElementById("tareaDificil").innerHTML=tareas_dificiles;
</script>
(function () {
var palabra = "ABC";
(function miFuncionIIFE() {
var palabra = "ABC";
Promesa
Promise o promesa es un objeto que representa la terminación o el fracaso de una operación asíncrona.
promise.then(function(data){
// si es exitosa hace este bloque
} function(err){
// si no, hace este
});
function testPromise() {
var thisPromiseCount = ++promiseCount;
var log = document.getElementById('log');
log.insertAdjacentHTML('beforeend', thisPromiseCount +
') Comenzó (<small>Comenzó el código sincrónico</small>)<br/>');
log.insertAdjacentHTML('beforeend', thisPromiseCount +
') Promesa hecha (<small>Código síncrono terminado.
</small>)<br/>');
}
// rest
function sumar(...numeros){
return numeros.reduce(function(prev, current){
return prev + current;
});
}
console.log(sumar(1,1,1,1,2,0,1,0)); // devuelve 7
function sumar(x,y){
return x + y;
}
let numeros = [1, 2];
console.log(sumar(...numeros));
function sortRestArgs(...theArgs) {
var sortedArgs = theArgs.sort();
return sortedArgs;
}
function sortArguments() {
var sortedArgs = arguments.sort();
return sortedArgs; // esto nunca va a ocurrir
}
JavaScript soporta este tipo de programación, aquí cada objeto es capaz de recibir mensajes, procesar
datos y enviar mensajes a otros objetos
Classes
Introducidas desde ES6, estas son plantillas para objetos de JavaScript. Se acompaña de un método
constructor()
<p id="demo"></p>
<script>
class Producto {
constructor(nombre, codigo) {
this.nombre = nombre;
this.codigo = codigo;
}
}
Métodos
Los métodos son funciones que se definen como funciones, aunque su lógica es de propiedades
Herencia simple. La herencia es una manera de crear una clase como una versión especializada de una
o más clases (JavaScript sólo permite herencia simple). La clase especializada comúnmente se llama
hija o secundaria, y la otra clase se le llama padre o primaria. En JavaScript la herencia se logra mediante
la asignación de una instancia de la clase primaria a la clase secundaria, y luego se hace la
especialización.
Encapsulación: por medio de la cual cada clase hereda los métodos de su elemento primario y sólo tiene
que definir las cosas que desea cambiar.
function Persona(primerNombre) {
this.primerNombre = primerNombre;
}
// métodos
Persona.prototype.diHola = function() {
alert ('Hola, Soy ' + this.primerNombre);
};
// Ejemplos de uso
var estudiante1 = new Estudiante("Carolina", "Ciclo III");
estudiante1.diHola(); // muestra "Hola, Soy Carolina. Estoy
estudianto Ciclo III."
estudiante1.caminar(); // muestra "Estoy caminando!"
estudiante1.diAdios(); // muestra "¡ Adios !"