Autor: Juan Pablo Fuentes
Formador de programación y bases de datos
Introducción a la programación
https://en.wikiversity.org/wiki/Introduction_to_Programming
https://openclassrooms.com/courses/aprende-a-programar-con-javascript/introduccion-a-la-programacion
http://librosweb.es/libro/javascript/capitulo_1.html
https://www.codecademy.com/es/tracks/javascript-traduccion-al-espanol-america-latina-clone
Normas del diseño de interfaces
Casino: Diseño
Deberemos construir una página de un casino con los siguientes apartados:
– Inicio
– Registro
– Fotos
Además incluiremos enlaces a los cuatro juegos que se van a jugar:
Slot Machine
Dados
Blackjack
Ruleta
Tendremos una página javascript, allí tendremos una variable ‘saldo’ que es el dinero del jugador y que de momento valdrá 100.
Ejemplo jQuery
<button id="anyadir">Añadir</button> <button id="delFirst">Eliminar primera</button> <button id="delLast">Eliminar última</button> <button id="suma">Sumar</button> <button id="suma2">Sumar 2</button> <table border="1" id="lista"> <tr><td>1</td></tr> </table>
$(function () { $('#anyadir').click(function () { var numero = Math.floor(Math.random() * 10) + 1; $('#lista').append("<tr><td>" + numero + "</td></tr>"); }); $('#delFirst').click(function () { $('#lista tr:first-child').remove(); }); $('#delLast').click(function () { $('#lista tr:last-child').remove(); }); $('#suma').click(function () { var suma = 0; for (var i = 1; i <= $('#lista tr').length; i++) { suma += parseInt($('#lista tr:nth-child(' + i + ') td').html()); } $('#lista').before("Suma: " + suma); }); $('#suma2').click(function () { var suma = 0; $('#lista td').each(function () { suma += parseInt($(this).html()); }); $('#lista').before("Suma: " + suma); }); });
Ejemplo jQuery
<input type="text" id="texto"> <p>Hola que tal</p> <p>Yo muy bien</p> <div id="resultado"></div> <button id="boton">Pulsar</button> <button id="mas">Añadir</button> <button id="eliminar">Eliminar</button>
$(function () { $('#boton').click(function () { $('p').animate({fontSize: "30px"}, 3000) .animate({fontSize: "10px"}, 3000) .animate({fontSize: "30px"}, 3000); }); $('#eliminar').click(function () { $('p:last-child').remove(); }); $('#mas').click(function () { // var div = $('#resultado').html(); // div += "<p>" + $('#texto').val() + "</p>"; // $('#resultado').html(div); $('#resultado').append("<p>" + $('#texto').val() + "</p>") $('#texto').val(''); $('p').click(function () { $(this).remove(); }); }); $('#texto').keyup(function (event) { if (event.keyCode === 13) { $('#mas').click(); } }); });
Más objetos
function Empleado(nombre, sueldo) { this.nombre = nombre; this.sueldo = sueldo; this.empresa = "Netmind"; this.departamento = ""; this.sueldoNeto = function () { return this.sueldo * (1-this.irpf()); }; this.irpf = function () { if (this.sueldo < 1500) { return .2; } if (this.sueldo >= 1500 && this.sueldo < 3000) { return .3; } return .4; }; this.neto=function(){ var sueldo=this.sueldo; var irpf=this.irpf(); var neto=sueldo-sueldo*irpf; return neto; }; } function Empresa(nombre) { this.nombre = nombre; this.jefe = new Empleado("Jefe", 3000); this.empleados = []; for (var i = 0; i < 10; i++) { this.empleados.push(new Empleado("Empleado" + i, 1400 + i * 100)); } this.comerciales = []; for (var i = 0; i < 3; i++) { var e = new Empleado("Comercial" + i, 1400 + i * 100); e.departamento = "Comercial"; this.comerciales.push(e); } } function Holding(emp1, emp2) { this.empresas = [emp1, emp2]; } var netmind = new Empresa("Netmind"); var activity = new Empresa("Activity"); var conglomerado = new Holding(netmind, activity); var ana = new Empleado("Ana Pérez", 1500); var juan = new Empleado("Juan Pi", 1400); var empleados = []; for (var i = 0; i < 10; i++) { empleados.push(new Empleado("Empleado" + i, 1400 + i * 100)); } String.prototype.oracion = function () { return this.valueOf().charAt(0).toUpperCase() + this.valueOf().slice(1).toLowerCase(); } function Producto(nombre,precio){ this.nombre=nombre; this.precio=precio; this.iva=.21; this.referencia=("0000" + Math.floor(Math.random()*10000)).slice(-4); this.pvp=function(){ return this.precio*(1+this.iva); } this.pvpConDescuento=function(descuento){ return this.pvp()*(1-descuento/100); } } var tornillo = new Producto("tornillo",100);
Ejemplos objetos
var pepe = { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue", completo:function(){ return this.firstName+" "+this.lastName; }, mayorEdad:function(){ return this.age>=18; } }; function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; } var ana=new Person("Ana","Pi",40,"azul") var juan=new Person("Juan","Perez",50,"marrón") for (var p in pepe){ if (typeof pepe[p]!=="function"){ console.log(p+" - "+pepe[p]); } else{ console.log(p+" - "+pepe[p]()); } } function normal(){ return "Hola"; } var noNormal=function(){ return "adios"; } noNormal=function(){ return "funcion nueva"; }
Ejemplos funciones
function tipoOracion(cadena) { var primera = cadena.charAt(0); var resto = cadena.slice(1); return primera.toUpperCase() + resto.toLowerCase(); } function tipoTitulo(cadena) { var palabras = cadena.split(" "); for (var i = 0; i < palabras.length; i++) { palabras[i] = tipoOracion(palabras[i]); } return palabras.join(" "); } function tipoTitulo2(cadena) { var palabras = cadena.split(" "); var res = ""; for (var i = 0; i < palabras.length; i++) { res += tipoOracion(palabras[i]) + " "; } return res.trim(); } function tipoTitulo3(cadena) { var res = cadena.charAt(0).toUpperCase(); for (var i = 1; i < cadena.length; i++) { if (cadena.charAt(i - 1) === " ") { res += cadena.charAt(i).toUpperCase(); } else { res += cadena.charAt(i).toLowerCase(); } } return res; } function tipoHipster(cadena) { var res = ""; for (var i = 0; i < cadena.length; i++) { var letra = cadena.charAt(i); if (esVocal(letra)) { res += letra.toUpperCase(); } else { res += letra.toLowerCase(); } } return res; } function tipoHipster2(cadena) { var letras = cadena.split(""); for (var i = 0; i < letras.length; i++) { if (esVocal(letras[i])) { letras[i] = letras[i].toUpperCase(); } else { letras[i] = letras[i].toLowerCase(); } } return letras.join(''); } function esVocal(letra) { var vocales = "aeiouáéíóúàèìòùü"; return vocales.indexOf(letra.toLowerCase()) !== -1; } function eliminarVocales(cadena) { var res = ""; for (var i = 0; i < cadena.length; i++) { var letra = cadena.charAt(i); if (!esVocal(letra)) { res += letra; } } return res; } function eliminarVocalesReg(cadena) { return cadena.replace(/[aeiouáéíóúàèìòùü]/gi, ""); } function palabraMasLarga(cadena) { var palabras = cadena.split(" "); var larga = ""; for (var i = 0; i < palabras.length; i++) { if (palabras[i].length > larga.length) { larga = palabras[i]; } } return larga; } function palabraMasLargaSort(cadena) { var palabras = cadena.split(" "); palabras.sort(function (a, b) { return b.length - a.length; }); return palabras[0]; } function trimTotal(cadena) { cadena = cadena.trim(); var res = cadena.charAt(0); for (var i = 1; i < cadena.length; i++) { if (!(cadena.charAt(i) === " " && cadena.charAt(i - 1) === " ")) { res += cadena.charAt(i); } } return res; } function trimTotalArr(cadena) { var palabras = cadena.split(" "); for (var i = palabras.length - 1; i >= 0; i--) { if (palabras[i] === "") { palabras.splice(i, 1); } } return palabras.join(" "); } function trimTotalReplace(cadena) { while (cadena.indexOf(" ") !== -1) { cadena = cadena.replace(/ /g, " "); } return cadena.trim(); } function trimTotalReg(cadena) { cadena = cadena.replace(/[ ]+/g, " "); return cadena.trim(); }