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();
}