JSFácil  - Manual de referencia para Principiantes

JsFácil es un tutorial de JavaScript para Principiantes. Surgió como un proyecto de estudio personal, y se fue ampliando para poder ser un sitio de referencia para quien lo desee.

Los conceptos están linkeados a otras páginas, o hay un breve resumen de cada uno.

Luego están los problemas, que aconsejo tratar de resolver sin mirar cómo los resolví yo. Se aprende mejor haciendo, con ‘las manos en la masa’ como dicen. Hay bastantes ejercicios, como para que nadie se quede con las ganas.

Credits: javascriptya.com.ar me dió la estructura conceptual. También hay links a otros sitios.

Los ejercicios los fui resolviendo a mi modo.

INDICE

Estructuras secuenciales de programación

Estructuras condicionales simples

Estructuras condicionales compuestas

Estructuras condicionales anidadas

Operadores lógicos || (o) en las estructuras condicionales

Estructuras switch

Estructura repetitiva (while)

Estructura repetitiva (do/while)

Estructura repetitiva (for)

Funciones

Funciones con parámetros

Funciones que retornan un valor

Programación orientada a objetos

Clase Date

Clase Array

Clase Math

Clase String

Formularios y eventos

Controles FORM, BUTTON y TEXT

Control PASSWORD

Control SELECT

Control CHECKBOX

Control RADIO

Control TEXTAREA

Eventos onFocus y onBlur

Eventos onMouseOver y onMouseOut

Eventos onLoad

El objeto window

Propiedad location del objeto window

Propiedad History del objeto window

Propiedad Screen del objeto window

Propiedad Navigator del objeto window

Archivo JavaScript externo (*.js)        

Programación orientada a objetos

Definición de varias clases        

Vectores con componentes de tipo objeto

Creación de objetos literales

Array: diferentes formas de crearlos

Array densos        

Array: no densos o dispersos

Array: métodos push and pop

Array: métodos unshift and shift

Array: instrucción delete        

Array: métodos sort y reverse

Array: método splice

Array: método slice        

Array: método join

Array: método concat

Array: método tostring

Funciones: objeto arguments

Funciones: variables locales y variables globales

Funciones anidadas        

Funciones: parámetros de tipo función

Eventos

Eventos: click y dblclick

Eventos: mousedown y mouseup        

Eventos: mouseover y mouseout        

Evento: mousemove

Eventos: keydown, keyup y keypress

Evento: change

Eventos: focus y blur

Parámetro del método asociado al addEventListener

Evento: submit

Operadores de igualdad y desigualdad (==, ===, !=, !==)

Función isNaN

Función isFinite

Funciones setInterval, clearInterval, setTimeout y clearTimeout

Operador condicional ?:

Expresiones regulares

Expresiones regulares: (^ principio $ fin) de cadena

Expresiones regulares: [] conjunto de caracteres opcionales

Expresiones regulares: cuantificadores o repeticiones {x} {x,y} {x,}

Expresiones regulares: metacaracteres de cuantificadores alternativos * ? +

Expresiones regulares abreviadas: \d \w \s \D \W

Expresiones regulares: alternancia |

Expresiones regulares: metacarácter punto

Expresiones regulares: agrupación en subpatrones ()

Expresiones regulares: métodos test y exec del objeto RegExp

Expresiones regulares: modificadores i (insensitive) g (global) m (multiline)

Expresiones regulares: métodos search, replace, split, match del objeto String.

Estructuras secuenciales de programación                                        volver al indice

/* problema1           Realizar la carga del lado de un cuadrado, mostrar por pantalla el //perímetro del mismo (El perímetro de un cuadrado se calcula multiplicando el valor del //lado por cuatro)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 var a = prompt("lado del cuadrado","");

 var perimetro = parseInt(a)*4;

 document.write("el perímetro del c es " + perimetro );

 document.write("<br>");

</script>

</body>

</html>

/*Problema 2                Escribir un programa en el cual se ingresen cuatro números, calcular e informar la suma //de los dos primeros y el producto del tercero y el cuarto.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var valor1 = prompt("ingrese valor 1","");

  var valor2 = prompt("ingrese valor 2","");

  var valor3 = prompt("ingrese valor 3","");

  valor1 = parseInt(valor1);

  valor2 = parseInt(valor2);

  valor3 = parseInt(valor3);

  cuenta = (valor1 + valor2)*valor3;

  if (valor1 == valor2 && valor1 == valor3) {

          document.write("La suma de los 2 primeros, multiplicada por el ultimo nos da " + cuenta); }

else {

document.write("Los valores ingresados no son iguales"); }

</script>

</body>

</html>

/* Problema 3        Se debe desarrollar un programa que pida el ingreso del precio de un artículo y la //cantidad que lleva el cliente. Mostrar lo que debe abonar el comprador (Ingresar por //teclado un precio sin decimales, es decir un entero: 2, 7, 90 etc.)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 var precio;

 var cantidad;

 precio = prompt("ingrese el precio del artículo","");

 cantidad = prompt("ingrese la cantidad que quiere","");

 costo = parseInt(cantidad) * parseInt(precio);

 document.write("usted tiene que abonar " + costo );

</script>

</body>

</html>

Estructuras condicionales simples                                                volver al indice

/*Problema 1                 Se ingresan tres notas de un alumno, si el promedio es mayor o igual a siete mostrar el mensaje 'Promocionado'. Tener en cuenta que para obtener el promedio debemos operar suma=nota1+nota2+nota3; y luego hacer promedio=suma/3;

Cuando cargamos una nota y queremos convertir inmediatamente el valor ingresado a entero podemos hacer:

nota1=prompt('Ingrese primer nota:','');

nota1=parseInt(nota1);*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 var nota1 = prompt ("ingrese primer nota","");

 var nota2 = prompt ("ingrese segunda nota","");

 var nota3 = prompt ("ingrese tercer nota","");

 suma = parseInt(nota1) + parseInt(nota2) + parseInt(nota3);

 promedio = suma/3;

 if (promedio >= 7) { document.write('Promocionado'); }

</script>

</body>

</html>

/*Problema 2         Solicitar que se ingrese dos veces una clave. Mostrar un mensaje si son iguales (tener en cuenta que para ver si dos variables tienen el mismo valor almacenado debemos utilizar el operador ==)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 var clave1 = ('ingrese su pass','');

 var clave2 = ('ingrese su pass de nuevo','');

 if (clave1 == clave2) { document.write('Su clave es correcta...'); }

</script>

</body>

</html>

Estructuras condicionales compuestas                                        volver al indice

/*Problema  1         Realizar un programa que lea por teclado dos números, si el primero es mayor al segundo informar su suma y diferencia, en caso contrario informar el producto y la división del primero respecto al segundo.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var num1 = prompt('escriba el primer número','');

  var num2 = prompt('escriba el segundo número','');

  num1 = parseInt(num1);

  num2 = parseInt(num2);

  var suma = num1 + num2;

  var diferencia = num1 - num2;

  var producto = num1 * num2;

  var division = num1 / num2;

  if (num1 > num2) {

    document.write('su suma es ' + suma);

    document.write('<br>');

    document.write('su diferencia es ' + diferencia);

}else {

    document.write('su producto es ' + producto);

    document.write('<br>');

    document.write('su división es ' + division);

}

</script>

</body>

</html>

     

/*Problema  2         Se ingresan tres notas de un alumno, si el promedio es mayor o igual a 4 mostrar un mensaje 'regular', sino 'reprobado'.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 var nota1 = prompt ("ingrese primer nota","");

 var nota2 = prompt ("ingrese segunda nota","");

 var nota3 = prompt ("ingrese tercer nota","");

 suma = parseInt(nota1) + parseInt(nota2) + parseInt(nota3);

 promedio = suma/3;

 if (promedio >= 4) {

   document.write('Regular');

}else {

   document.write('Reprobado');

}

</script>

</body>

</html>

     

/*Problema  3         Se ingresa por teclado un número positivo de uno o dos dígitos (1..99) mostrar un mensaje indicando si el número tiene uno o dos dígitos (recordar de convertir a entero con parseInt para preguntar posteriormente por una variable entera). Tener en cuenta qué condición debe cumplirse para tener dos dígitos, un número entero.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

   var num1 = prompt ("ingrese un número entero de una o dos cifras","");

   num1 = parseInt(num1);

 if (num1 >= 10) {

   document.write('El número tiene dos cifras');

}else {

   document.write('El número tiene una cifra');

}

</script>

</body>

</html>

Estructuras condicionales anidadas                                                volver al indice

 

//No tenían ejercicios así que copié un ejemplo...

/*Problema                 Confeccionar un programa que pida x teclado tres notas de un alumno, calcule el promedio e imprima alguno de los mensajes:

Si el promedio (pro) es >=7                 “Promocionado”

Si el promedio (pro) es >=4 y <7        “Regular”

Si el promedio (pro) es <4                “Reprobado”

<html>
<head>
</head>
<body>
<script type="text/javascript">
 var nota1,nota2,nota3;
 nota1=prompt('Ingrese 1ra. nota:','');
 nota2=prompt('Ingrese 2da. nota:','');
 nota3=prompt('Ingrese 3ra. nota:','');
 //Convertimos los 3 string en enteros
 nota1=parseInt(nota1);
 nota2=parseInt(nota2);
 nota3=parseInt(nota3);
 var pro;
 pro=(nota1+nota2+nota3)/3;
 if (pro>=7)
 {
   document.write('promocionado');
 }
 else
 {
   if (pro>=4)
   {
     document.write('regular');
   }
   else
   {
     document.write('reprobado');
   }
 }
</script>
</body>
</html>

Operadores lógicos && (y) en las estructuras condicionales                volver al indice

/*Problema1         Realizar un programa que pida cargar una fecha cualquiera, luego verificar si dicha fecha corresponde a Navidad (se debe cargar por separado el dia, el mes y el año)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var dia= prompt("ingrese el día","");

var mes= prompt("ingrese el mes","");

var ano = prompt("ingrese el año","");

if (dia == 25 && mes == 12)

{ document.write("Esta fecha corresponde a Navidad"); }

else

{ document.write("Esta fecha no corresponde a Navidad"); }

</script>

</body>

</html>

/*Problema2        Se ingresan tres valores por teclado, si todos son iguales se imprime la suma del primero con el segundo y a este resultado se lo multiplica por el tercero (tener en cuenta que puede haber tres condiciones simples)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

        var val1 = prompt(“ingrese valor 1”,””);

        var val2 = prompt(“ingrese valor 2”,””);

        var val3 = prompt(“ingrese valor 3”,””);

        if (val1 == val2 == val3)

{ document.write(“Los valores ingresados son iguales”); }

else

{ document.write(“Los valores ingresados no son iguales”); }

</script>

</body>

</html>

/*Problema3        Se ingresan por teclado tres números, si todos los valores ingresados son menores a 10, imprimir en la página la leyenda ' Todos los números son menores a diez'.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var num1 = prompt("ingrese el primer número","");

  var num2 = prompt("ingrese el segundo número","");

  var num3 = prompt("ingrese el tercer número","");

  num1 = parseInt(num1);

  num2 = parseInt(num2);

  num3 = parseInt(num3);

  if (num1 < 10 && num2 < 10 && num3 < 10)

    { document.write("Todos los números son menores a diez ");}

else

    { document.write("alguno de los números es mayor o igual a 10"); }

</script>

</body>

</html>

/*Problema4        Escribir un programa que pida ingresar la coordenada de un punto en el plano, es decir dos valores enteros x e y. Posteriormente imprimir en pantalla en qué cuadrante se ubica dicho punto. (1º Cuadrante si x > 0 Y y > 0 , 2º Cuadrante: x < 0 Y y > 0, etc.)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var x = prompt("ingrese la coordenada x","");

var y = prompt("ingrese la coordenada y","");

if (x > 0 && y > 0)

{ document.write("El punto se ubica en el primer cuadrante");}

else if (x < 0 && y > 0)

{ document.write("El punto se ubica en el segundo cuadrante"); }

else if (x < 0 && y < 0)

{ document.write("El punto se ubica en el tercer cuadrante"); }

else

{ document.write("El punto se ubica en el cuarto cuadrante"); }

</script>

</body>

</html>

/*Problema5        

  1. De un operario se conoce su sueldo y los años de antigüedad. Se pide confeccionar un programa que lea los datos de entrada e informe
  2. a)        Si el sueldo es inferior a 500 y su antigüedad es igual o superior a 10 años, otorgarle un aumento del 20 %, mostrar el sueldo a pagar.
  3. b)        Si el sueldo es inferior a 500 pero su antigüedad es menor a 10 años, otorgarle un aumento de 5 %.
  4. c)        Si el sueldo es mayor o igual a 500 mostrar el sueldo en la página sin cambios.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var sueldo = prompt("ingrese el sueldo","");

var antiguedad = prompt("ingrese la antiguedad en años","");

sueldo = parseInt(sueldo);

antiguedad = parseInt(antiguedad);

aumento20 = sueldo + (sueldo*20)/100;

aumento5 = sueldo + (sueldo*5)/100;

if (sueldo < 500 && antiguedad >= 10)

{ document.write("El sueldo que corresponde es de " + aumento20);}

else if (sueldo < 500 && antiguedad < 10)

{ document.write("El sueldo que corresponde es de " + aumento5); }

else

{ document.write("El sueldo que corresponde es de " + sueldo); }

</script>

</body>

</html>

Operadores lógicos || (o) en las estructuras condicionales                        volver al indice

/*Problema1                 Se ingresan por teclado tres números, si al menos uno de los valores ingresados es menores a 10, imprimir en la página la leyenda 'Alguno de los números son menores a diez'. */

<html>

<head>

</head>

<body>

<script type="text/javascript">

 var num1 = prompt("Ingrese el primer número","");

 var num2 = prompt("Ingrese el segundo número","");

 var num3 = prompt("Ingrese el tercer número","");

 num1 = parseInt(num1);

 num2 = parseInt(num2);

 num3 = parseInt(num3);

 if (num1 <10 || num2 < 10 || num3 < 10) {

   document.write("Alguno de los números es menor a 10");

}else {

   document.write("Los números ingresados son mayores a 10");

}

</script>

 

</body>

</html>

Estructuras switch                                                                        volver al indice

(para reemplazar muchos if/else)

ejemplo:

<html>
<head>
</head>
<body>
<script type="text/javascript">
 var col;
 col=prompt('Ingrese el color con que se quiere pintar el fondo de la ventana (rojo, verde, azul)' ,'');
 switch (col) {
   case 'rojo': document.bgColor='#ff0000';
                break;
   case 'verde': document.bgColor='#00ff00';
                break;
   case 'azul': document.bgColor='#0000ff';
                break;
 }
</script>
</body>
</html>

/*Problema        Solicitar el ingreso alguna de estas palabras (casa, mesa, perro, gato) luego mostrar la palabra traducida en inglés. Es decir, si se ingresa 'casa' debemos mostrar el texto 'house' en la página.(lo de los colores lo agregué por mi cuenta)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 var x = prompt ("ingrese una de estas palabras para traducir: casa, mesa, perro, gato","");

switch(x) {

case "casa":

  document.write ("house");

  document.bgColor="#f00";

  break;

case "mesa":

  document.write ("table");

  document.bgColor="#0f0";

  break;

case "perro":

  document.write ("dog");

  document.bgColor="#00f";

  break;

case "gato":

  document.write ("cat");

  document.bgColor="#a5e300";

  break;

default:

  document.write ("palabra no valida");

}

</script>

</body>

</html>

Estructura repetitiva (while)                                                        volver al indice

while (condition) { code; change (ej incremento: i++)}

si no se cumple la condicion saltea las llaves.

/*Problema 1        Realizar un programa que imprima 25 términos de la serie 11 - 22 - 33 - 44, etc. (No se ingresan valores por teclado).*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var i = 11;

while (i<=275) {

   document.write(i + "<br>");

   i += 11;

}

</script>

</body>

</html>

/*Problema 2        Mostrar múltiplos de 8 hasta el valor 500. Debe aparecer en pantalla 8-16-24, etc*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var i = 8;

while (i<=500) {

   document.write(i + "<br>");

   i += 8;

}

</script>

</body>

</html>

/* Si queremos que el codigo se repita x veces -x ej. 5- escribiremos lo siguiente:

while (x<=5)

{code ; x= x+1 }

x=x+1 se puede escribir x+=1 y es lo mismo*/

-----

/*Problema 1        Escribir un programa que lea 10 notas de alumnos y nos informe cuántos tienen notas mayores o iguales a 7 y cuántos menores.*/

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var x=1;

  var moi=0;

  var men=0

  var nota;

  while (x<=10)

  {

    nota=prompt('Ingrese la nota:','');

    nota=parseInt(nota);

      if (nota<=7){ moi+=1; }

      else { men+=1; }

    x=x+1;

  }

  document.write("Cantidad de alumnos con nota de 7 para arriba: " + moi +"<br>");

  document.write("Cantidad de alumnos con nota menor a 7: " + men);

</script>

</body>

</html>

/*Problema 2        Se ingresan un conjunto de 5 alturas de personas x teclado. Mostrar la altura promedio de las personas.*/

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var x=1;

  var altura;

  var suma=0;

  while (x<=5)

  {

    altura=prompt('Ingrese la altura:','');

    altura=parseInt(altura);

    suma+=altura;

    x=x+1;

  }

  var promedio=suma/5;

  document.write("La altura promedio es de: " + promedio);

</script>

</body>

</html>

/*Problema 3         En una empresa trabajan 5 empleados cuyos sueldos oscilan entre $100 y $500, realizar un programa que lea los sueldos que cobra cada empleado e informe cuántos empleados cobran entre $100 y $300 y cuántos cobran más de $300. Además el programa deberá informar el importe que gasta la empresa en sueldos al personal.*/

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var x=1;

  var sueldo;

  var moi=0;

  var mayor=0;

  var suma=0;

  while (x<=5)

  {

    sueldo=prompt('Ingrese el sueldo entre 100 y 500:','');

    sueldo=parseInt(sueldo);

    if (sueldo<=300){

    moi+=1;

    }else{

    mayor+=1;

    }

    suma+=sueldo;

    x=x+1;

  }

  document.write("Empleados que cobran hasta $300: " + moi + "<br>" + "<br>");

  document.write("Empleados que cobran más de $300: " + mayor + "<br>" + "<br>");

  document.write("La empresa gasta $" + suma + " en los sueldos del personal");

</script>

</body>

</html>

/*Problema 4         Realizar un programa que imprima 20 términos de la serie 5 - 10 - 15 - 20, etc. (No se ingresan valores por teclado). */

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var x=5;

 

  while (x <= 5*20)

  {

    document.write(x + " ");

    x=x+5;

  }

 

</script>

</body>

</html

/*Problema 5         Mostrar los múltiplos de 10 hasta el valor 1500. Debe aparecer en pantalla 10 - 20 - 30 etc. */

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var x=10;

 

  while (x <= 1500)

  {

    document.write(x + " ");

    x+=10;

  }

 

</script>

</body>

</html>

   

/*Problema 6         Realizar un programa que permita cargar dos listas de 3 valores cada una. Informar con un mensaje cual de las dos listas tiene un valor acumulado mayor (mensajes 'Lista 1 mayor', 'Lista 2 mayor', 'Listas iguales')

Tener en cuenta que puede haber dos o más estructuras repetitivas en un algoritmo.  */

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var x=1;

  var lista1=0;

  var lista2=0;

  var valor;

 

  while (x <= 6)

  { if (x <= 3) {

    var valor = prompt('ingrese un valor para la lista 1:','');

    valor = parseInt(valor);

    lista1+=valor;

    }else{

    var valor = prompt('ingrese un valor para la lista 2:','');

    valor = parseInt(valor);

    lista2+=valor;

    }

    x++;

  }

  if (lista1 > lista2) {

  document.write("Lista 1 mayor" + "<br>");

  }else if (lista2 > lista1) {

        document.write("Lista 2 mayor" + "<br>");

        }else {

        document.write("Listas iguales");

        }

</script>

</body>

</html>

     

/*Problema 7         Desarrollar un programa que permita cargar 5 números enteros y luego nos informe cuántos valores fueron pares y cuántos impares.

Emplear el operador "%" en la condición de la estructura condicional.

        if (valor%2==0)

El operador "%" retorna el resto de la división valor / 2. Por ejemplo: 12 % 2, retorna 0; 13 % 2, retorna 1, porque el resto de dividir 13 en 2 es 1.*/

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var x=1;

  var pares=0;

  var impares=0;

  var valor;

 

  while (x <= 5)

  { var valor = prompt('ingrese un valor:','');

    valor = parseInt(valor);

    if (valor%2 == 0){

    pares+=1;

    }else{

    impares+=1;

    }

    x++;

   }

document.write("Valores pares: " + pares + "<br>");

document.write("Valores impares: " + impares);

</script>

</body>

</html>

Estructura repetitiva (do/while)                                                        volver al indice

/*Problema1                Realizar un programa que acumule (sume) valores ingresados por teclado hasta ingresa el 9999 (no sumar dicho valor, solamente indica que ha finalizado la carga). Imprimir el valor acumulado e informar si dicho valor es cero, mayor a cero o menor a cero.

(Lo de los colores es idea mia)

*/

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var valor;

  var suma=0;

  do {

    valor=prompt('Ingrese un valor:','');

    valor=parseInt(valor);

    if (valor==0)

    {

      document.write("<span style=\"color:red;\">Valor 0<\/span>");

    }

    else

    {

      if (valor<0)

      {

        document.write("<span style=\"color:green;\">valor + ' es menor que 0'<\/span>");

      }

      else

      {

        document.write(valor + ' es mayor que 0');

      }

    }

   document.write('<br>');

   suma+=valor

  } while(suma < 9999);

   document.write("la suma de sus valores ha llegado a 9999");

</script>

</body>

</html>

/*Problema2                En un banco se procesan datos de las cuentas corrientes de sus clientes. De cada cuenta corriente se conoce: número de cuenta, nombre del cliente y saldo actual. El ingreso de datos debe finalizar al ingresar un valor negativo en el número de cuenta.

Se pide confeccionar un programa que lea los datos de las cuentas corrientes e informe:

a) De cada cuenta: número de cuenta, nombre del cliente y estado de la cuenta según su saldo, sabiendo que:

Estado de la cuenta        'Acreedor' si el saldo es >0.
                        'Deudor' si el saldo es <0.
                        'Nulo' si el saldo es =0.

b) La suma total de los saldos acreedores.*/

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var ncta=0;

  var nombre;

  var saldo=0;

  var etdcta;

  suma=0;

  do {

    ncta=prompt('Ingrese número de cuenta: ','');

    ncta=parseInt(ncta);

    nombre=prompt('Ingrese nombre: ','');

    saldo=prompt('Ingrese saldo: ','');

    saldo=parseInt(saldo);

    if (saldo > 0)

    { etdcta="Acreedor";

      suma+=saldo;

      document.write("Número de cuenta: " + ncta);

      document.write('<br>');

      document.write("Cliente: " + nombre);

      document.write('<br>');

      document.write("Estado de cuenta: " + etdcta);

      document.write('<br>');

    }

    else

    {

      if (saldo < 0)

      { etdcta="Deudor";

        document.write("Número de cuenta: " + ncta);

      document.write('<br>');

      document.write("Cliente: " + nombre);

      document.write('<br>');

      document.write("Estado de cuenta: " + etdcta);

      document.write('<br>');

      }

      else

      { etdcta="nulo";

        document.write("Número de cuenta: " + ncta);

      document.write('<br>');

      document.write("Cliente: " + nombre);

      document.write('<br>');

      document.write("Estado de cuenta: " + etdcta);

      document.write('<br>');

      }

    }

      document.write('<br>');

  } while(ncta > 0);

   document.write("La suma total de los acreedores es de: " + suma);

</script>

</body>

</html>

/*Problema 3                Se realizó un censo provincial y se desea procesar la información obtenida en dicho censo. De cada una de las personas censadas se tiene la siguiente información: número de documento, edad y sexo ('femenino' o 'masculino')

Se pide confeccionar un programa que lea los datos de cada persona censada (para finalizar ingresar el valor cero en el número de documento) e informar:


a)        Cantidad total de personas censadas.
b)        Cantidad de varones.
c)        Cantidad de mujeres.
d)        Cantidad de varones cuya edad varía entre 16 y 65 años
.*/

<html>

<head>

</head>

<body>

<script  type="text/javascript">

  var ndoc=0;

  var edad;

  var sexo;

  var varones=0;

  var mujeres=0;

  var varonesMayores=0;

  total=0;

  do {

    ndoc=prompt('Ingrese número de documento: ','');

    ndoc=parseInt(ndoc);

    edad=prompt('Ingrese edad: ','');

    edad=parseInt(edad);

    sexo=prompt('Ingrese sexo ("femenino" o "masculino"): ','');

    total+=1;

    if (sexo=="masculino")

    { varones+=1;

      if (edad >= 16 && edad <=65) { varonesMayores+=1; }  

    }

    else

    { mujeres+=1; }

  } while(ndoc != 0);

   document.write("El total de personas censadas es de: " + total + "<br>");

   document.write("El total de mujeres censadas es de: " + mujeres + "<br>");

   document.write("El total de varones censados es de: " + varones + "<br>");

   document.write("El total de varones entre 16 y 65 años es de: " + varonesMayores + "<br>");

</script>

</body>

</html>

Estructura repetitiva (for)                                                                volver al indice

for (<Inicialización> ; <Condición> ; <Incremento o Decremento>)
{
 <Instrucciones>
}

/*Problema 1         Confeccionar un programa que lea 3 pares de datos, cada par de datos corresponde a la medida de la base y la altura de un triángulo. El programa deberá informar:

a)        De cada triángulo la medida de su base, su altura y su superficie.

b)        La cantidad de triángulos cuya superficie es mayor a 12.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var altura;

var base;

var sup;

var cont=0;

for (var i = 1; i <= 3; i++){

  altura = prompt ("ingrese la altura del triángulo " + i +": ","");

  altura = parseInt(altura);

  base = prompt ("ingrese la base del triángulo " + i +": ","");

  base = parseInt(base);

  sup = base*altura/2;

  if (sup > 12) {

    cont+=1;

  }

  document.write ("Triángulo número: " + i + '<br>');

  document.write ("Altura: " + altura + '<br>');

  document.write ("Base: " + base  + '<br>');

  document.write ("Superficie: " + sup + '<br>' + '<br>');

  }

document.write ("Triángulos con sup mayor a 12: " + cont);

</script>

</body>

</html>

/*Problema 2         Desarrollar un programa que solicite la carga de 10 números e imprima la suma de lo últimos 5 valores ingresados.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

suma=0;

for (var i = 1; i <= 10; i++){

  var num = prompt ("ingrese un número: ","");

  num = parseInt(num);

 

  if (i>5){

    suma+=num;

  }

}

document.write( suma );

</script>

</body>

</html>

/*Problema 3                Desarrollar un programa que muestre la tabla de multiplicar del 5 (del 5 al 50).*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  tabla=0;

  for (var i = 1; i <= 10; i++){

   tabla+=5;

   document.write( tabla + ' ' );

}

</script>

</body>

</html>

/*Problema 4                Confeccionar un programa que permita ingresar un valor del 1 al 10 y nos muestre la tabla de multiplicar del mismo (los primeros 12 términos)

Ejemplo: Si ingreso 3 deberá aparecer en pantalla los valores 3, 6, 9, hasta el 36.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  tabla=0;

  var valor = prompt ("ingrese un número del 1 al 10: ", "");

  valor = parseInt(valor);

  for (var i = 1; i <= 12; i++){

   tabla+=valor;

   document.write( tabla + ' ' );

}

</script>

</body>

</html>

/*Problema 5                Realizar un programa que lea los lados de 4 triángulos, e informar:

a)        De cada uno de ellos, qué tipo de triángulo es: equilátero (tres lados iguales), isósceles (dos lados iguales), o escaleno (ningún lado igual)

b)        Cantidad de triángulos de cada tipo.

c)        Tipo de triángulo del que hay menor cantidad.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var lado1;

var lado2;

var lado3;

var eq=0;

var isc=0;

var esc=0;

for (var i = 1; i <= 4; i++){

  lado1 = prompt ("ingrese lado 1 del triángulo " + i +": ","");

  lado1 = parseInt(lado1);

  lado2 = prompt ("ingrese lado 2 del triángulo " + i +": ","");

  lado2 = parseInt(lado2);

  lado3 = prompt ("ingrese lado 3 del triángulo " + i +": ","");

  lado3 = parseInt(lado3);

  if (lado1 == lado2 == lado3) {

    document.write (i + " es un triángulo equilátero" + '<br>');

    eq+=1;

    }else if ((lado1 == lado2) || (lado1 == lado3) || (lado2 == lado3)) {

       document.write (i + " es un triángulo isósceles" + '<br>');

       isc+=1;

       }else {

          document.write (i + " es un triángulo escaleno" + '<br>');

          esc+=1;

          }

  }

  document.write ("Triángulos equiláteros: " + eq + '<br>');

  document.write ("Triángulos isósceles: " + isc + '<br>');

  document.write ("Triángulos escalenos: " + esc + '<br>');

  if (eq < isc && eq < esc) {

  document.write ("Hay menos equiláteros");

  }else if (isc < eq && isc < esc) {

        document.write ("Hay menos isósceles");

        }else if (esc < eq && esc < isc) {

        document.write ("Hay menos isósceles");

        }else {

             document.write ("Hay dos tipos de triángulos con menos cantidad");

             }

</script>

</body>

</html>

/*Problema 6                Escribir un programa que pida ingresar coordenadas (x,y) que representan puntos en el plano. Informar cuántos puntos se han ingresado en el primer, segundo, tercer y cuarto cuadrante. Al comenzar el programa se pide que se ingrese la cantidad de puntos a procesar.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var x;

var y;

var a=0;

var b=0;

var c=0;

var d=0;

var suma=0;

var cant = prompt ("cuantos puntos va a ingresar?: ","");

cant = parseInt(cant);

for (var i = 1; i <= cant; i++){

  x = prompt ("ingrese coord x: ","");

  x = parseInt(x);

  y = prompt ("ingrese coord y: ","");

  y = parseInt(y);

  suma+=1;

  if (x>0 && y>0) { a+=1; }

  else if (x<0 && y>0) { b+=1; }

  else if (x<0 && y<0) { c+=1; }

  else { d+=1; }      

  }

  document.write ("Cantidad de puntos a procesar: " + cant + '<br>');

  document.write ("Cuadrante a: " + a + '<br>');

  document.write ("Cuadrante b: " + b + '<br>');

  document.write ("Cuadrante c: " + c + '<br>');

  document.write ("Cuadrante d: " + d );

</script>

</body>

</html>

/*Problema 7                Se realiza la carga de 10 valores enteros por teclado. Se desea conocer:

a)        La cantidad de valores negativos ingresados.

b)        La cantidad de valores positivos ingresados.

c)        La cantidad de múltiplos de 15.

d)        El valor acumulado de los números ingresados que son pares.*/

/*Problema 8                Se cuenta con la siguiente información:

Las edades de 5 estudiantes del turno mañana.

Las edades de 6 estudiantes del turno tarde.

Las edades de 11 estudiantes del turno noche.

Las edades de cada estudiante deben ingresarse por teclado.

a)        Obtener el promedio de las edades de cada turno (tres promedios).

b)        Imprimir dichos promedios (promedio de cada turno).

c)        Mostrar por pantalla un mensaje que indique cual de los tres turnos tiene un promedio de edades mayor.

Funciones                                                                                volver al indice

function <nombre de función>(argumento1, argumento2, ..., argumento n)
{
 <código de la función>
}

Funciones con parámetros                                                                volver al indice

/*Problema 1                Elaborar una función a la cual le enviemos tres enteros y muestre el menor.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  function mostrarMenor(x1,x2, x3)

  {

    if (x1<x2 && x1<x3) { document.write("el menor es: " + x1 ); }

    else if (x2<x3) { document.write("el menor es: " + x2 ); }

    else { document.write("el menor es: " + x3 ); }

  }

  var valor1,valor2;

  var e1=prompt('Ingrese valor entero1:','');

  e1=parseInt(e1);

  var e2=prompt('Ingrese valor entero2:','');

  e2=parseInt(e2);

  var e3=prompt('Ingrese valor entero3:','');

  e3=parseInt(e3);

  mostrarMenor(e1, e2, e3);

</script>

</body>

</html>

/*Problema 2                Confeccionar una función a la cual le envíe tres enteros y los muestre ordenados de menor a mayor.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  function mostrarMenoraMayor(x1, x2, x3)

  {

    if (x1<x2 && x1<x3 && x2 < x3) { document.write( x1 +" "+ x2 +" "+x3 ); }

    else if (x1<x2 && x1<x3 && x3 < x2) { document.write( x1 +" "+ x3 +" "+x2 ); }

    else if (x2<x3 && x1<x3) { document.write( x2 +" "+ x1 +" "+x3 ); }

    else if (x2<x3 && x3<x1) { document.write( x2 +" "+ x3 +" "+x1 ); }

    else if (x2<x1) { document.write( x3 +" "+ x2 +" "+x1 ); }

    else { document.write( x3 +" "+ x1 +" "+x2 ); }

  }

  var valor1,valor2;

  var e1=prompt('Ingrese valor entero1:','');

  e1=parseInt(e1);

  var e2=prompt('Ingrese valor entero2:','');

  e2=parseInt(e2);

  var e3=prompt('Ingrese valor entero3:','');

  e3=parseInt(e3);

  mostrarMenoraMayor(e1, e2, e3);

</script>

</body>

</html>

Funciones que retornan un valor                                                         volver al indice

*/Problema 1         Confeccionar una función a la cual le envíe tres enteros y retorne el mayor de ellos.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var p =

function mostrarMayor(a,b,c)

 {  

 if (a>b && a>c)

  return a;

   else if (b>c)

    return b;

      else

       return c;

 }

 num1 = prompt("Ingrese un número entero:","");

 num1 = parseInt(num1);

 num2 = prompt("Ingrese un número entero:","");

 num2 = parseInt(num2);

 num3 = prompt("Ingrese un número entero:","");

 num3 = parseInt(num3);

 document.write(mostrarMayor(num1, num2, num3));

</script>

</body>

</html>

     

*/Problema 2                Elaborar una función a la cual le envíe el valor del lado de un cuadrado y me retorne su perímetro.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 function perimetro(x) {

   return x*4

}

var lado=prompt('Ingrese el lado del cuadrado: ','');

lado=parseInt(lado);

document.write(perimetro(lado));

</script>

</body>

</html>

*/Problema 3         Desarrollar una función que retorne la cantidad de dígitos que tiene una variable positiva.

Lo dejé para otro momento...

*/Problema 4                Elaborar una f(x)que reciba 3 enteros y retorne el promedio. */

<html>

<head>

</head>

<body>

<script type="text/javascript">

 function prom(x,y,z) {

   return (x+y+z)/3;

}

var a=prompt('Ingrese un entero: ','');

a=parseInt(a);

var b=prompt('Ingrese un entero: ','');

b=parseInt(b);

var c=prompt('Ingrese un entero: ','');

c=parseInt(c);

document.write("El promedio de estos 3 enteros es " + prom(a, b, c));

</script>

</body>

</html>

     */Problema 5        Confeccionar una f(x) que solicite la carga de 5 valores por teclado y retorne su suma*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 function sum(a, b, c, d, e) {

   return a+b+c+d+e;

}

var a=prompt('Ingrese un entero: ','');

a=parseInt(a);

var b=prompt('Ingrese un entero: ','');

b=parseInt(b);

var c=prompt('Ingrese un entero: ','');

c=parseInt(c);

var d=prompt('Ingrese un entero: ','');

d=parseInt(d);

var e=prompt('Ingrese un entero: ','');

e=parseInt(e);

document.write("La suma de estos 5 enteros es " + sum(a, b, c, d, e));

</script>

</body>

</html>

Programación orientada a objetos                                                volver al indice

Para acceder a los métodos y propiedades de un objeto debemos utilizar la siguiente sintaxis:

objeto.propiedad

objeto.metodo(parametros)

Clase Date                                                                                volver al indice

descripción de la clase Date y algunos de sus métodos

*/Problema 1                Confeccionar un programa que muestre en qué cuatrimestre del año nos encontramos. Para esto obtener el mes.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 function cuatriActual() {

 var fecha = new Date ();

 var mes = fecha.getMonth()+1;

 

 if (mes<=4) {

  document.write('Estamos en el primer cuatri');

  } else if (mes<=8) {

    document.write('Estamos en el segundo cuatri');

    } else if (mes<=12) {

      document.write('Estamos en el tercer cuatri');

      }

 document.write('<br>'+'Es el mes número: '+ mes);

 }

 

 cuatriActual();

</script>

</body>

</html>

Clase Array                                                                                volver al indice

“Un vector es una estructura de datos que permite almacenar un CONJUNTO de datos”

var name = [value1, value2, valu3,..., valueN];

Para acceder

name [ index ]

0-based index.

Descripción y ejemplos

Funciones básicas

*/Problema 1                Desarrollar un programa que permita ingresar un vector de 8 elementos, e informe:

El valor acumulado de todos los elementos del vector.

El valor acumulado de los elementos del vector que sean mayores a 36.

Cantidad de valores mayores a 50.*/        

Analizar!

<html>

<head>

</head>

<body>

<script type="text/javascript">

function cargar(elementos){

  for (var i=0; i<elementos.length; i++) {

    var x = prompt ('Ingrese el elemento: ','');

    elementos[i]=parseInt(x);

  }

}

function sumar(elementos){

   for (var i=0; i<elementos.length; i++) {

     var suma=0;

     suma+=elementos[i];

   }

 document.write("Suma total de los elementos: " + suma);

 document.write('<br>');

}

function sumaMayor36(elementos){

   for (var i=0; i<elementos.length; i++) {

     var mayor = 0;

     if (elementos[i]>36) {

       mayor+=elementos[i];

     }

    }

  document.write("Suma mayores a 36: " + mayor);

  document.write('<br>');

}

function sumaMayor50(elementos){

   for (var i=0; i<elementos.length; i++) {

     var masgde = 0;

     if (elementos[i]>50) {

       masgde+=elementos[i];

     }

   }

  document.write("Suma mayores a 50: " + masgde);

  document.write('<br>');

}

var elementos = new Array(8);

cargar(elementos);

sumar(elementos);

sumaMayor36(elementos);

sumaMayor50(elementos);

</script>

</body>

</html>

*/Problema 2         Realizar un programa que pida la carga de dos vectores numéricos. Obtener la suma de los dos vectores, dicho resultado guardarlo en un tercer vector del mismo tamaño. Sumar componente a componente.

El tamaño del vector es a elección.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function cargar(x,y) {

 for (var i=0 ; i<x.length ; i++) {

   var n1 = prompt ('ingrese primer número: ','');

   x[i] = parseInt (n1);

 }

 for (var i=0 ; i<y.length ; i++) {

   var n2 = prompt ('ingrese segundo número: ','');

   y[i] = parseInt (n2);

 }

}

function sumar(x,y, suma) {

 for (var i=0 ; i<suma.length ; i++) {

  suma[i]= x[i]+y[i];

  document.write(suma[i] + ' ');

 }

}

var x = new Array(5);

var y = new Array(5);

var suma = new Array(5);

cargar(x,y);

sumar(x,y, suma);

</script>

</body>

</html>

Clase Math                                                                                volver al indice

Descripción y ejemplos

*/ Problema 1         Confeccionar un programa que solicite el ingreso de un número y nos muestre dicho valor elevado a la tercera potencia.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var x = prompt('Ingrese un número','');

x = parseInt (x);

var pot = Math.pow(x,3);

document.write('Su número elevado a la tercera potencia es: ' + pot);

</script>

</body>

</html>

     

*/ Problema 2        Ingresar por teclado un valor y luego mostrar la raíz cuadrada de dicho valor.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var x = prompt('Ingrese un número','');

x = parseInt (x);

var raiz = Math.sqrt(x);

document.write('La raiz cuadrada de su número es: ' + raiz);

</script>

</body>

</html>

Clase String                                                                                volver al indice

Descripción y ejemplos

Funciones básicas

*/ Problema 1         Ingresar una serie de nombres por teclado hasta que se cargue la palabra Fin, y mostrar cuántos nombres se ingresaron.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var i=0;

 do {

  var nom = prompt('Ingrese nombre: ','');

  i++;

  } while (nom != "Fin");

//para descontar la palabra Fin

  i--;

 document.write('Se ingresaron ' +i+' nombres');

</script>

</body>

</html>

*/ Problema 2        Igual al anterior, pero que termine la aplicación sin contemplar mayúsculas ni minúsculas. Es decir que para salir se pueda teclear fin, Fin o FIN.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var i=0;

 do {

  var nom = prompt('Ingrese nombre: ','');

  var nom2 = nom.toLowerCase();

  i++;

  } while (nom2 != "fin");

//para descontar la palabra Fin

  i--;

 document.write('Se ingresaron ' +i+' nombres');

</script>

</body>

</html>

     

*/ Problema 3        Realizar la búsqueda de un string clave en un string fuente. Se deberá ingresar una frase o texto (fuente) y luego la clave a buscar. En caso de encontrarla, imprimir la posición, de lo contrario una leyenda.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 var fuente = prompt('Ingrese una frase: ','');

 var palabra = prompt('Ingrese una palabra','');

 if (fuente.indexOf(palabra)!=-1)

 document.write('Se ingresó la palabra '+ palabra + ' en el texto');

 else

 document.write('No se ingresó la palabra '+ palabra + ' en el texto');

</script>

</body>

</html>

*/ Problema 4        Ingresar una palabra o texto por teclado y determinar si es o no una palabra palíndromo. (Palabra que se lee de igual manera de adelante hacia atrás, que de atrás hacia delante)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var texto = prompt('Ingrese una oración o palabra:','');

  var letras = texto.split("");

 if (letras == letras.reverse()) {

  document.write("Esta palabra o frase es palíndromo");

  }else {

  document.write("Esta palabra o frase NO es palíndromo");

  }

  document.write('<br>');

  document.write("De adelante hacia atrás" + texto);

  document.write('<br>');

  letras.reverse();

  for (var i=0; i<letras.length; i++) {

  document.write("De atrás hacia adelante" + letras[i]);

  }

</script>

</body>

</html>

*/ Problema 5        Realizar un programa que permita cargar una dirección de mail e implementar una función que verifique si el String tiene cargado el carácter @.El alert se lo agregué después, puede servir en algún formulario*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var mail = prompt('Ingrese su dirección de email:','');

function verificar(){  

  var verif;

  if (mail.indexOf('@')!=-1)

  { verif = true; }

  else

  { verif = false;

    alert('el mail ingresado es incorrecto')

}

document.write(verif);

}

document.write(mail);

document.write('<br>');

verificar(mail);

</script>

</body>

</html>

*/ Problema 6        Cargar un String por teclado e implementar las siguientes funciones:

a) Imprimir la primera mitad de los caracteres de la cadena.

b) Imprimir el último carácter.

c) Imprimirlo en forma inversa.

d) Imprimir cada carácter del String separado con un guión.

e) Imprimir la cantidad de vocales almacenadas.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var texto = prompt('Ingrese una oración o palabra:','');

//imprimir la mitad de los caracteres de la cadena

  var mitad = texto.length/2;

  mitad = parseInt(mitad);

  var medio = texto.substring(mitad);

  document.write(medio);

  document.write('<br>');

//imprimir el último carácter

  var ultimo = texto.length-1;

  ultimo = parseInt(ultimo);

  var caracterFinal = texto.substring(ultimo);

  document.write(caracterFinal);

  document.write('<br>');

//imprimirlo en forma inversa

  var letras = texto.split("");

  letras.reverse();

  for (var i=0; i<letras.length; i++) {

  document.write(letras[i]);

  }

  document.write('<br>');

//imprimir cada carácter del String separado con un guión

  var letras = texto.split("");

  for (var i=0; i<letras.length; i++) {

  document.write(letras[i] + "-");

  }

  document.write('<br>');

//imprimir la cantidad de vocales almacenadas

  var letras = texto.split("");

  for (var i=0; i<letras.length; i++) {

    if (letras[i]=='a'||letras[i]=='e'||letras[i]=='i'||letras[i]=='o'||letras[i]=='u') {

    document.write( letras[i] );

    }

  }

*/ Problema 7        Codifique un programa que permita cargar una oración por teclado, luego mostrar cada palabra ingresada en una línea distinta.

Por ejemplo si cargo:
        La mañana está fría.
Debe aparecer:
La
mañana
está
fría.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var texto = prompt('Ingrese una oración o palabra:','');

  var dividir = texto.split(" ");

 

  for (var i=0; i<dividir.length; i++) {

  document.write( dividir[i] + "<br>" );

  }

</script>

</body>

</html>

Formularios y eventos                                                                volver al indice

Descripción y ejemplo

 

  form <form> ... </form>
 text <input type="text">
 password <input type="password">
 textarea <textarea> ... </textarea>
 button <input type="button">
 submit <input type="submit">
 reset <input type="reset">
 checkbox <input type="checkbox">
 radio <input type="radio">
 select <select> ... </select>
 hidden <input type="hidden">

Ejemplo onClick con form buttons (ref. to htmlgoodies)

<FORM>

<INPUT TYPE="button" VALUE="BACK"

onClick="history.go(-1)">

<INPUT TYPE="button" VALUE="FORWARD"

onClick="history.go(1)">

</FORM>v

explicación

*/ Problema                Crear un formulario con tres botones con las leyendas “1”, “2”, “3”. Mostrar un mensaje indicando qué botón se presionó. Lo de los colores fue cosa mía*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function button1()

{ document.bgColor='gray';

  alert('Ud ha presionado el botón 1');

}

function button2()

{ document.bgColor='blue';

  alert('Ud ha presionado el botón 2');

}

function button3()

{ document.bgColor='red';

  alert('Ud ha presionado el botón 3');

}

</script>

<form>

  <input type="button" onClick="button1()" value="Botón 1">

  <br><br>

  <input type="button" onClick="button2()" value="Botón 2">

  <br><br>

  <input type="button" onClick="button3()" value="Botón 3">

</form>

</body>

</html>

Controles FORM, BUTTON y TEXT                                                volver al indice

*/ Problema 1        Crear un programa que permita cargar un entero en un text y al presionar un botón nos muestre dicho valor elevado al cubo (emplear la función alert)*/

<html>

<head></head>

<body>

<script type="text/javascript">

 function cubo() {

  var entero = document.getElementById("entero").value;

  var cubo = Math.pow(entero,3);

  alert ('El valor del número ' + entero + ' elevado al cubo nos da: '+ cubo);

}

 

</script>

<form>

<p>Ingrese un número entero:</p>

<input type="text" id="entero"><br><br>

<input type="button" value="Procesar" OnClick="cubo()">

</form>

</body>

</html>

*/ Problema 2        Cargar dos números en objetos de tipo text y al presionar el botón mostrar el mayor*/

<html>

<head></head>

<body>

<script type="text/javascript">

 function calcular(){

   var n1 = document.getElementById('primero').value;

   n1 = parseInt (n1);

   var n2 = document.getElementById('segundo').value;

   n2 = parseInt (n2);

   if (n1 > n2) {

     alert ('El número mayor es... ' + n1)

   } else {

     alert ('El número mayor es... ' + n2)

     }

   

 }

</script>

<form>

<h1>Ingrese dos número y le diremos cuál de los dos es mayor</h1>

<p>Ingrese un número:</p>

<input type="text" id="primero">

<p>Ingrese otro número:</p>

<input type="text" id="segundo"><br><br>

<input type="button" value="Calcular" onClick="calcular()">

</form>

</body>

</html>

*/ Problema 3        Cargar un nombre y un apellido en sendos text. Al presionar un botón, concatenarlos y mostrarlos en un tercer text (Tener en cuenta que podemos modificar la propiedad value de un objeto TEXT cuando ocurre un evento)

<html>

<head></head>

<body>

<script type="text/javascript">

 function concatenar(){

   var nombre = document.getElementById('nombre').value;

   var apellido = document.getElementById('apellido').value;

   document.getElementById('resultado').value=(nombre+' '+apellido);

   

 }

</script>

<form>

<h1>Identificación por favor... :</h1>

<p>Ingrese su nombre:</p>

<input type="text" id="nombre">

<p>Ingrese su apellido:</p>

<input type="text" id="apellido"><br><br>

<input type="button" value="Concatenar" onClick="concatenar()"><br><br>

<input type="text" id="resultado">

</form>

</body>

</html>

Control PASSWORD                                                                volver al indice

Variante del tipo TEXT. Sólo muestra asteriscos al ingresar

*/ Problema 1        Disponer dos campos de texto tipo password. Cuando se presione un botón mostrar si las dos claves ingresadas son iguales o no (es muy común solicitar al operador el ingreso de dos veces de su clave para validar si las escribió correctamente, esto se hace cuando se crea una password para el ingreso a un sitio o para el cambio de una existente).

Tener en cuenta que podemos emplear el operador == para ver si dos string son iguales.Lo de los colores fue cosa mIa*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function verif() {

 var cl1 = document.getElementById('clave').value;  

 var cl2 = document.getElementById('clave2').value;  

 if (cl1 == cl2){

  document.bgColor='lightblue';

  alert ('las dos claves son correctas');

 }else {

   document.bgColor='red';

   alert ('ERROR ERROR ERROR ERROR...');

   }

}

 

</script>

<form>

Ingrese una clave:

<input type="password" id="clave">

<br>

Ingrese nuevamente la clave:

<input type="password" id="clave2">

<br>

<input type="button" value="Chequear" onClick="verif()">

</form>

</body>

</html>

Control SELECT                                                                        volver al indice

Descripción y ejemplo

Representa una lista dropdown en un formulario HTML

Permite al usuario seleccionar una opción de la lista.

Por cada <select> tag in el formulario HTML, un objeto Select es creado.

Se puede acceder al objeto Select buscando un array de los elementos del form; o usando document.getElementById()

selectObject.options

The options collection returns a collection of all the options in a dropdown list.

Note: There will be one array element for each <option> tag - starting at 0.

Propiedades

length  devuelve el numero de option elements in la colección.

selectedIndex (almacena la posición del string seleccionado de la lista, numerando a partir de cero).

Metodos

[index]

An integer that specifies the element to retrieve (starts at 0)

[add(element[,index])]

Adds an option element into the collection at the specified index. If no index is specified, it inserts the option element at the end of the collection

item(index)

Returns the element from the collection with the specified index

namedItem(name)

Returns the element from the collection with the specified name (name or id attribute)

remove(index)

Removes the element with the specified index from the collection

*/ Problema 1         Confeccionar una página que muestre un objeto SELECT con distintos tipos de pizzas (Jamón y Queso, Muzzarella, Morrones). Al seleccionar una, mostrar en un objeto de tipo TEXT el precio de la misma.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function precios() {

 var selec = document.getElementById('pizza');

 document.getElementById('precio').value = selec.options[selec.selectedIndex].value

}

</script>

<form>

<select id="pizza" onchange="precios()">

  <option>--Pizza--</option>

  <option value="$1.5">Jamón y Queso</option>

  <option value="$1.7">Muzzarella</option>

  <option value="$1.6">Morrones</option>

</select>

<br>

<br>

<br>

<p>Precio de las pizzas: </p>

<input type="text" id="precio">

</form>

</body>

</html>

*/ Problema 2                Generar un presupuesto de un equipo de computación a partir de tres objetos de tipo SELECT que nos permiten seleccionar:

Procesador (Intel I3 - $400, Intel I5 $600, Intel I7 $800).

Monitor (Samsung 20' - $250, Samsung 22' - $350, Samsung 26' - $550)

Disco Duro(500 Gb - $300, 1 Tb - $440, 3 Tb - $500)

Para cada característica indicamos string a mostrar (Ej. Intel I3) y el valor asociado a dicho string (Ej. 400).

Al presionar un botón "Calcular" mostrar el presupuesto en un objeto de tipo TEXT.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function calcular() {

 var precioProcesador = document.getElementById('Procesador');

 var procesador = precioProcesador.options[precioProcesador.selectedIndex].value

 procesador = parseInt(procesador);

 var precioMonitor = document.getElementById('Monitor');

 var monitor = precioMonitor.options[precioMonitor.selectedIndex].value

 monitor = parseInt(monitor);

 var precioDiscoDuro = document.getElementById('Disco Duro');

 var discoduro = precioDiscoDuro.options[precioDiscoDuro.selectedIndex].value

 discoduro = parseInt(discoduro);

 document.getElementById('Presupuesto').value =('$' + (procesador + monitor + discoduro));

}

</script>

<form>

<select id="Procesador">

  <option value="0">--Procesador--</option>

  <option value="400">Intel I3</option>

  <option value="600">Intel I5</option>

  <option value="800">Intel I7</option>

</select>

<select id="Monitor">

  <option value="0">--Monitor--</option>

  <option value="250">Samsung 20'</option>

  <option value="350">Samsung 22'</option>

  <option value="550">Samsung 26'</option>

</select>

<select id="Disco Duro">

  <option value="0">--Disco Duro--</option>

  <option value="300">500 Gb</option>

  <option value="440">1 Tb</option>

  <option value="500">3 Tb</option>

</select>

<br>

<br>

<br>

<input type="button" value="Calcular" onClick="calcular()">

<input type="text" id="Presupuesto">

</form>

</body>

</html>

*/ Problema 3                Confeccionar una página que permita seleccionar una pizza y la cantidad de unidades. Luego al presionar un botón calcular el importe a pagar.

Utilizar un objeto de la clase SELECT para la selección de la pizza, pudiendo ser:

Queso: $ 4.

Jamón y queso: $ 6.

Especial: $ 10.

A la cantidad de pizzas cargarla en un objeto de la clase TEXT y en otro objeto de la clase TEXT mostrar el importe total a abonar.onFocus se lo agregué para que quede más prolijo*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function calcular(){

 var tipo = document.getElementById('pizza');

 var precio = tipo.options[tipo.selectedIndex].value;

 precio = parseInt(precio);

 var cantidad = document.getElementById('cantidad');

 var num = cantidad.value;

 num = parseInt(num);

 document.getElementById('importe').value = precio*num;

}

</script>

<form>

<select id="pizza">

 <option value="0">--Pizza--</option>

 <option value="4">Queso</option>

 <option value="6">Jamón y queso</option>

 <option value="10">Especial</option>

</select>

<input type="text" id="cantidad" value="cantidad" onFocus="value=''">

<input type="text" id="importe" value="total a abonar">

<br>

<br>

<br>

<br>

<input type="button" value="calcular" onClick="calcular()">

</form>

</body>

</html>

*/ Problema 4                Confeccionar una página que permita tomar un examen múltiple choice. Se debe mostrar una pregunta y seguidamente un objeto SELECT con las respuestas posibles. Al presionar un botón mostrar la cantidad de respuestas correctas e incorrectas (Disponer 4 preguntas y sus respectivos controles SELECT)*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function resultados() {

var corr=0;

var incorr=0;

 

 var suma = document.getElementById('suma');

 var respSuma = suma.options[suma.selectedIndex].value

 if (respSuma == "true") {corr+=1;}

 else {incorr+=1;}

 var split = document.getElementById('split');

 var respSplit = split.options[split.selectedIndex].value

 if (respSplit == "true") {corr+=1;}

 else {incorr+=1;}

 var nest = document.getElementById('nest');

 var respNest = nest.options[nest.selectedIndex].value

 if (respNest == "true") {corr+=1;}

 else {incorr+=1;}

 var script= document.getElementById('script');

 var respScript = script.options[script.selectedIndex].value

 if (respScript == "true") {corr+=1;}

 else {incorr+=1;}

 document.getElementById('correctas').value = corr;

 document.getElementById('incorrectas').value = incorr;

}

</script>

<form>

<h1>Cuánto sabés de javaScript?</h1>

<p>x=3+"3";</p>

<p>document.write(x);</p>

<select id=suma>

 <option> resultado? </option>

 <option value="true">33</option>

 <option value="false">6</option>

 <option value="false">3</option>

 <option value="false">Error output</option>

</select>

<p>var jig = "JavaScript is good";</p>

<p>var result = jig.split(" ");</p>

<p>document.write(result);</p>

<select id=split>

 <option> resultado? </option>

 <option value="false">JavaScript</option>

 <option value="false">J,a,v,a,S,c,r,i,p,t,i,s,g,o,o,d</option>

 <option value="true">JavaScript,is,good</option>

 <option value="false">JavaScriptisgood</option>

</select>

<p>Is it possible to nest functions in JavaScript?</p>

<select id=nest>

 <option> resultado? </option>

 <option value="true">true</option>

 <option value="false">false</option>

</select>

<p>document.write(navigator.appCodeName);</p>

<select id=script>

 <option> resultado? </option>

 <option value="true">get code name of the browser of a visitor</option>

 <option value="false">set code name of the browser of a visitor</option>

 <option value="false">None of the above</option>

</select>

<br>

<br>

<br>

<br>

<input type="button" value="Resultados" onClick="resultados()">

<p>Respuestas correctas <input type="text" id="correctas"</p>

<p>Respuestas incorrectas <input type="text" id="incorrectas"</p>

</form>

</body>

</html>

Control CHECKBOX                                                                volver al indice

Descripción y ejemplo

Puede tener dos estados (seleccionado o no)

//seleccionado

document.getElementById(‘’).checked  

/* Problema                 Confeccionar una pagina que muestre tres checkbox que permitan seleccionar los deportes que practica el usuario (Fútbol, Básquet, Tenis) Mostrar al presionar un botón los deportes que ha elegido*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function mostrar(){

var a="";

var b="";

var c="";

if (document.getElementById('futbol').checked) {

  a = " futbol ";}

 

if (document.getElementById('basquet').checked) {

  b = " basquetbol ";}

if (document.getElementById('tenis').checked) {

  c = " tenis ";}

  document.getElementById('respuesta').value = a + b + c;

}

</script>

<form>

<h1>A qué deporte juegas?</h1>

a <input type="checkbox" id="futbol">Fútbol

<br>

<br>

b <input type="checkbox" id="basquet">Basquetbol

<br>

<br>

c <input type="checkbox" id="tenis">Tenis

<br>

<br>

<input type="button" value="mostrar" onClick="mostrar()"

<br>

<input type="text" id="respuesta" size="35">

</form>

</body>

</html>

     

Control RADIO                                                                        volver al indice

Descripción y ejemplo

*/ Problema                 Confeccionar una página que muestre dos objetos de la clase RADIO solicitando que seleccione si es mayor de 18 años o no. Al presionar el botón mostrar un alert indicando si puede ingresar al sitio o no*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function procesar(){

 if (document.getElementById('radio1').checked){

   alert ("bienvenido al nuevo tutorial para aprender a manejar");

 }

 if (document.getElementById('radio2').checked){

   alert ("disculpá, necesitás ser mayor de edad");

 }

}

</script>

<h1>Querés aprender a manejar?</h1>

<form>

<input type="radio" id="radio1" name="manejo">Sí, ya soy mayor de 18.

<br>

<br>

<input type="radio" id="radio2" name="manejo">No puedo, todavía no tengo 18.

<br>

<br>

<input type="button" value="Haz click aquí" onClick="procesar()">

</form>

</body>

</html>

     

Control TEXTAREA                                                                        volver al indice

Descripción y ejemplo

En el ejercicio utilizo ‘\n’ como separador de líneas, para que quede más prolijo. Equivale al <br> de HTML.

*/Problema                 Confeccionar una página de visitas a un sitio, solicitar ingresar el nombre de una persona, su mail y los comentarios (TEXTAREA). Mostrar luego llamando a la función alert los datos ingresados.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function mostrar(){

 var nombre = document.getElementById('nombre').value;

 var mail = document.getElementById('mail').value;

 var comment = document.getElementById('comentario').value;

 alert (nombre +'\n'+'\n'+ mail +'\n'+'\n'+ comment);

}

</script>

<h1>Bienvenido a RESOLVIENDO PROBLEMAS JAVASCRIPT</h1>

<h4>Por favor, ingrese sus datos y cuéntenos su problema</h4>

<form>

Ingrese su nombre: <input type="text" id="nombre">

<br>

Ingrese su email: <input type="text" id="mail">

<br>

Comentarios:

<br>

<textarea id="comentario" rows="10" cols="50"></textarea>

<br>

<input type="button" value="Mostrar" onClick="mostrar()">

</form>

</body>

</html>

Eventos onFocus y onBlur                                                                volver al indice

Descripción y ejemplo

*/ Problema                 Solicitar que se ingrese el nombre y la clave de un usuario. Mostrar una ventana de alerta si en la clave se ingresan menos de 7 caracteres o más de 20.*/

<html>

<head></head>

<body>

<script type="text/javascript">

function liberar(texto)

{

  texto.value='';

}

function chequear(texto)

{

  if (texto.value.length<7 || texto.value.length>20)

    alert('Debe ingresar más de 7 dígitos y menos de 20');

}

function mensaje()

{

  alert('has ingresado los valores correctamente, puedes continuar aprendiendo');

}

</script>

<form>

Ingrese su nombre:

<input type="text" id="nombre" onFocus="liberar(this)" onBlur="chequear(this)" value="nombre"><br>

Ingrese su mail:

<input type="text" id="mail" onFocus="liberar(this)" onBlur="chequear(this)" value="mail">

<br>

<input type="button" value="Confirmar" onClick="mensaje()">

</form>

</body>

</html>

Eventos onMouseOver y onMouseOut                                                volver al indice

Descripción y ejemplo

ejemplo:

<a href="http://web.cruzjurado.com" onMouseOver="alert('Hello there, you’re going to...')">webpage</a>

ejemplo2:

<a href="http://web.cruzjurado.com" onMouseOver="parent.location="/cd"">webpage</a>

hidden link:

<a onMouseOver="parent.location='http://web.cruzjurado.com/cd'">hidden link</a>

document.bgColor:

<a href='' onMouseOver="document.bgColor='lightblue'" onMouseOut="document.bgColor=''">document.bgColor</a>

/*Dos formas de resolver lo mismo. La primera es mi versión.*/

<html>

<head></head>

<body>

<table border=1>

<tr>

<td onMouseOver="bgColor='red'" onMouseOut="bgColor='white'"><a href="http://www.gmail.com">  gmail</a> </td>

<td onMouseOver="bgColor='green'" onMouseOut="bgColor='white'"><a href="http://www.hotmail.com">  hotmail</a> </td>

<td onMouseOver="bgColor='blue'" onMouseOut="bgColor='white'"><a href="http://www.yahoo.com">  yahoo</a> </td>

</tr>

</table>

</body>

</html>

/*la segunda.. es más larga pero más completa. Se pueden hacer más cambios ya que se invoca una función*/

<html>

<head></head>

<body>

<script type="text/javascript">

  function pintar(objeto,col)

  {

    objeto.bgColor=col;

  }

</script>

<table border="1">

<tr>

<td onMouseOver="pintar(this,'#ff0000')" onMouseOut="pintar(this,'#ffffff')">

<a href="http://www.hotmail.com">Hotmail</a>

</td>

<td onMouseOver="pintar(this,'#00ff00')" onMouseOut="pintar(this,'#ffffff')">

<a href="http://www.yahoo.com">Yahoo</a>

</td>

<td onMouseOver="pintar(this,'#0000ff')" onMouseOut="pintar(this,'#ffffff')">

<a href="http://www.gmail.com">GMail</a>

</td>

</tr>

</table>

</body>

</html>        

Eventos onLoad                                                                        volver al indice

Descripción y ejemplo

/* Problema                Confeccionar una página que muestre un mensaje con la función alert inmediatamente después que se cargue.*/

<html>

<head>

</head>

<body onLoad="alertar()">

<script type="text/javascript">

function alertar()

{

 alert ('Bienvenido a esta página, navegue con cuidado de no mojarse');

}

</script>

<h1>Pagina de botes</h1>

<p>compre su bote preferido y le regalamos otro</>

</body>

</html>

El objeto window                                                                        volver al indice

Descripción y ejemplo

Ej:
valor=window.prompt("Ingrese valor","");
o
valor=prompt("Ingrese valor","");      //sin el window. Funciona igual, sólo que más cortito de escribir...

métodos:

alert             muestra diálogo de alerta con un mensaje

prompt                muestra diálogo para la entrada de un valor de tipo string

confirm        muestra un diálogo de confirmación con botones Confirmar y Cancelar

open                abre una ventana del navegador

close                cierra ...

[variable (var) = ] [window.] open ( URL, nombre, propiedades);

optativo              optativo              opcional

algunas de las propiedades:

•        toolbar[=yes|no]
•        location[=yes|no]
•        directories[=yes|no]
•        status[=yes|no]
•        menubar[=yes|no]
•        scrollbars[=yes|no]
•        resizable[=yes|no]
•        width=pixels
•        height=pixels

/* Problema                 Confeccionar una página que permita abrir otra ventana cuando se presiona un botón. Dicha ventana debe tener como ancho 600 pixeles y alto 300 pixeles.*/

<html>

<head></head>

<body>

<script type="text/javascript">

function nuevaVentana()

{

  var ventana = open('','',"width=600, height=300");

  ventana.document.write('Usted acaba de abrir una ventana, pero tenía que abrir la otra...');

}

</script>

El botón le permitirá abrir otra ventana a un nuevo mundo

<br>

<form>

 <br>

 <input type="button" value="'Sierra de la' ventana" onClick="nuevaVentana()">

</form>

</body>

</html>

Propiedad location del objeto window                                                volver al indice

Descripción y ejemplo

*/ Problema                Confeccionar una página que tenga un hipervínculo. Cuando se presione dicho hipervínculo generar un valor aleatorio entre 0 y 2. Si se genera el 0 llamar al webmail de hotmail, si se genera un 1 llamar a gmail en caso de generarse un 2 llamar a yahoo.

Para generar un valor aleatorio utilizar la función random del objeto Math. Lo de la confirmación se lo agregué dp.


var num;
num=Math.random()*3; //se guarda en num un valor comprendido entre 0.00001 y 2.99999
num=parseInt(num);  //guardamos solo la parte entera de la variable num
if (num==0)
   window.location='http://www.hotmail.com';
.....*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 function alea()

 {

   var num = Math.random()*3;

   num = parseInt(num);

   if (num==0)

   {   if (window.confirm('Desea salir del sitio e ingresar a hotmail?'))

       {

       window.location='http://www.hotmail.com';

       }

       else

       {

       window.alert('No hay problema');

       }

   }

   if (num==1)

   {   if (window.confirm('Desea salir del sitio e ingresar a gmail?'))

       {

       window.location='http://www.gmail.com';

       }

       else

       {

       window.alert('No hay problema');

       }

   }

   if (num==2)

   {   if (window.confirm('Desea salir del sitio e ingresar a yahoo?'))

       {

       window.location='http://www.yahoo.com';

       }

       else

       {

       window.alert('No hay problema');

       }

   }

 }

</script>

<h1>Ruleta de mails</h1>

Ud. generará un valor aleatorio entre 0 y 2. <br>

Si genera el 0 será redireccionado a hotmail <br>

Si genera el 1 será redireccionado a gmail <br>

Si genera el 2 será redireccionado a yahoo <br>

<br>

<br>

<a href="javascript:alea()">Generar</a>

</body>

</html>

Propiedad History del objeto window                                                volver al indice

Descripción y ejemplos

Propiedad Screen del objeto window                                                volver al indice

Descripción y ejemplo

Resumen: nos da info del monitor del usuario (donde se está ejecutando el navegador)

Las ppales propiedades son:

availHeight : El alto de la pantalla en pixeles disponible para el navegador.
availWidth : El ancho de la pantalla en pixeles disponible para el navegador.
colorDepth : Representa el número de bits usados para representar los colores.
height : El alto de la pantalla en pixeles.
width : El ancho de la pantalla en pixeles.

/*Problema                Confeccionar un programa que al presionar un botón aparezca una ventana que ocupe todo el ancho del monitor y la mitad de su altura.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function newV()

{

var x=screen.width;

var y=screen.height/2;

open(",","width=x, height=y");

}

</script>

<input type="button" value="Abrir otra ventana" onClick="newV()";

</body>

</html>

algo no está andando como debiera. revisar esto...

Propiedad Navigator del objeto window                                                volver al indice

Descripción y ejemplo

/* Problema                Una vez que se cargue la página mostrar un alert indicando si el navegador tiene activas las cookies.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

alert("cookies enabled: " + navigator.cookieEnabled);

</script>

</body>

</html>

Archivo JavaScript externo (*.js)                                                        volver al indice

Descripción y ejemplo

Programación orientada a objetos                                                        volver al indice

Descripción y ejemplo

/* Problema                Confeccionar una clase llamada suma, que contenga dos atributos (valor1, valor2) y tres métodos: cargarvalor1, cargarvalor2 y retornarresultado. Implementar la clase suma.

La definición de un objeto de la clase que deben plantear es:

var s=new suma();
s.primervalor(10);
s.segundovalor(20);
document.write('La suma de los dos valores es:'+s.retornarresultado()); */

<html>

<head>

</head>

<body>

<script type="text/javascript">

var salto = "<br>"

function Suma (valor1, valor2)

 {

 this.valor1=valor1;

 this.valor2=valor2;

 this.cargarValor1=cargarValor1;

 this.cargarValor2=cargarValor2;

 this.retornarResultado=retornarResultado;

 }

function cargarValor1(valor1)

 {

 this.valor1=valor1;

 }

function cargarValor2(valor2)

 {

 this.valor2=valor2;

 }

function retornarResultado()

 {

 return this.valor1 + this.valor2;

 }

var s=new Suma(4,3);

document.write('La suma de los dos valores es: '+ s.retornarResultado() + salto);

s.cargarValor1(10);

s.cargarValor2(20);

document.write('La suma de los dos nuevos valores es: '+s.retornarResultado());

</script>

</body>

</html>

Definición de varias clases                                                                volver al indice

Definición y ejemplo

/* Problema                Plantear una clase persona (que permita cargar por teclado su nombre y edad).

Por otro lado crear una clase empresa que tenga como atributos el nombre y la edad tope para que una persona pueda ingresar como trabajador en la misma.

Confeccionar un pequeño programa en JavaScript que defina 3 objetos de la clase persona y 1 de la clase empresa. Mostrar cuántas de esas personas están inhabilidadas para ingresar como trabajadores de acuerdo a la edad tope. */

function Empresa(nombre_empresa, edad_tope)

{

 this.nombre = nombre_empresa;

 this.edad_tope = edad_tope;

}

function verificar(x, y){

 if (x > y)

 return true;

 else

 return false;

}

var persona_1 = new Persona();

var persona_2 = new Persona();

var persona_3 = new Persona();

var empresa_1 = new Empresa("Arcor", 50);

if (verificar(persona_1.edad, empresa_1.edad_tope))

{

  document.write(persona_1.nombre + " no está habilitado para trabajar en " + empresa_1.nombre + "<br>");

}else

{

  document.write(persona_1.nombre + " está habilitado para trabajar en " + empresa_1.nombre + "<br>");

}

if (verificar(persona_2.edad, empresa_1.edad_tope))

{

  document.write(persona_2.nombre + " no está habilitado para trabajar en " + empresa_1.nombre + "<br>");

}else

{

  document.write(persona_2.nombre + " está habilitado para trabajar en " + empresa_1.nombre + "<br>");

}

if (verificar(persona_3.edad, empresa_1.edad_tope))

{

  document.write(persona_3.nombre + " no está habilitado para trabajar en " + empresa_1.nombre + "<br>");

}else

{

  document.write(persona_3.nombre + " está habilitado para trabajar en " + empresa_1.nombre + "<br>");

}

</script>

</body>

</html>

     

Esta es una forma más elegante(y más corta) de resolver el mismo problema

<html>

<head>

</head>

<body>

<script type="text/javascript">

function Persona()

{

 this.nombre = prompt("Ingrese su nombre: ", "");

 this.edad = prompt("Ingrese su edad: ", "");

}

function Empresa(nombre_empresa, edad_tope)

{

 this.nombre = nombre_empresa;

 this.edad_tope = edad_tope;

}

function verificar(Persona, Empresa){

 if (Persona.edad > Empresa.edad_tope)

{

  document.write(Persona.nombre + " no está habilitado para trabajar en " + Empresa.nombre + "<br>");

}else

{

  document.write(Persona.nombre + " está habilitado para trabajar en " + Empresa.nombre + "<br>");

}

}

var persona_1 = new Persona();

var persona_2 = new Persona();

var persona_3 = new Persona();

var empresa_1 = new Empresa("Arcor", 50);

verificar(persona_1, empresa_1);

verificar(persona_2, empresa_1);

verificar(persona_3, empresa_1);

</script>

</body>

</html>

Vectores con componentes de tipo objeto                                        volver al indice

Definición y ejemplo

 

/* Problema                Confeccionar una clase persona que permita almacenar el nombre y la edad. Luego definir un vector de 4 componentes de tipo persona. Imprimir el nombre de la persona de mayor edad; decir también si hay más de una persona con la edad mayor.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

function Persona(nombre, edad)

{

this.nombre = nombre;

this.edad = edad;

this.estaPersona = estaPersona;

}

function estaPersona()

{

 document.write("La persona " + this.nombre + " tiene " + this.edad + " años." + "<br>");

}

var equipo = new Array (4);

equipo[0]= new Persona("Coco",34);

equipo[1]= new Persona("Caco", 67);

equipo[2]= new Persona("Quico",41);

equipo[3]= new Persona("Cuco",67);

var mayor = 0;

for (var i = 1 ; i < equipo.length ; i++)

{

 if (equipo[i].edad > equipo[mayor].edad)

 {

   mayor = i;

 }

}

document.write ("Personas de mayor edad: ");

for (var i = 0 ; i < equipo.length ; i++)

{

 if ( equipo[i].edad == equipo[mayor].edad)

 {

  equipo[i].estaPersona();

 }

}

</script>

</body>

</html>

     

Creación de objetos literales                                                        volver al indice

Definición y ejemplo

/* Problema                 Crear un objeto que represente los datos de un participante de un juego. Definir las propiedades

nombre
puntos

y las funciones:

imprimir (mostrar el nombre de jugador y los puntos actuales)
aumentarpuntos (permite incrementar la cantidad de puntos actuales del jugador)
verificarsigano (mostrar un mensaje si los puntos superan a 1000).
*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var participante1 = {

 nombre : "Coco",

 puntos : 0,

 imprimir : function ()

 {

 document.write("El nombre del jugador es: " + this.nombre + "<br>");

 },

 aumentarpuntos: function (puntos_nuevos)

 {

 this.puntos = this.puntos+puntos_nuevos;

 },

 verificarsigano : function()

 {

  if (this.puntos > 1000)

  {

   document.write ("El jugador " + this.nombre + " ha ganado!!!");

  }

 }

};

participante1.imprimir();

participante1.aumentarpuntos(1001);

participante1.verificarsigano();

</script>

</body>

</html>

Array: diferentes formas de crearlos                                                volver al indice

Definición y ejemplo

/* Problema                Confeccionar un programa que defina dos array, en uno almacenar los días de la semana y en otro los nombres de los meses. Emplear dos sintaxis diferentes para crear e inicializar sus componentes.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var diasSemana = new Array (7);

diasSemana[0] = "Domingo";

diasSemana[1] = "Lunes";

diasSemana[2] = "Martes";

diasSemana[3] = "Miércoles";

diasSemana[4] = "Jueves";

diasSemana[5] = "Viernes";

diasSemana[6] = "Sábado";

var meses = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];

var salto = "<br>";

document.write("Los días de la semana son: " + salto);

for (var i=0;i<diasSemana.length;i++)

{

document.write(diasSemana[i] + "<br>");

}

document.write(salto);

document.write("Los meses del año son: " + salto);

for (var i=0;i<meses.length;i++)

{

 document.write(meses[i] + "<br>");

}

</script>

</body>

</html>

Array densos                                                                                volver al indice

Definición y ejemplo

/* Problema                Crear un vector con 10 valores aleatorios comprendidos entre 1 y 500. Luego crear otros dos vectores y copiar los elementos menores a 250 en el segundo vector y los mayores o iguales a 250 en el tercer vector. Imprimir los tamaños del segundo y tercer vector. Imprimir los tres vectores.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var vector1 = new Array();

for (var i=0;i<10;i++)

{

var num = parseInt(Math.random()*500)+1;

vector1[i]=num;

}

var vector2 = new Array();

var vector3 = new Array();

var f=0;

var g=0;

for(var i=0;i<10;i++)

{

 if (vector1[i] < 250)

 {

  vector2[f]=vector1[i];

  f++;

 }else

 {

  vector3[g]=vector1[i];

  g++;

 }

}

document.write( "Tamaño del segundo vector: " + vector2.length + "<br>");

document.write( "Tamaño del tercer vector: " +  vector3.length + "<br>");

document.write("Vector 1: " + vector1 + "<br>");

document.write("Vector 2: " + vector2 + "<br>");

document.write("Vector 3: " + vector3 + "<br>");

</script>

</body>

</html>

Array: no densos o dispersos                                                        volver al indice

Definición y ejemplo

/* Problema                Crear un vector disperso que representen premios de una rifa. Las posiciones indican los números que tienen premio. Almacenar en dichas posiciones los premios. Genera 10 premios con los montos 1000,2000,3000 etc.

La cantidad de números de la rifa son 1000.

Generar valores aleatorios para los números con premio.

Imprimir Los números con premio y los montos de los mismos.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var numPremiados = [];

for(var i=0;i<10;i++)

 {

 var num = parseInt(Math.random()*1000)+1;

 numPremiados[i]=num;

 }

var premio=[1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000];

for(var f=0;f<numPremiados.length;f++)

 {

  if (numPremiados[f] !== undefined)

  {

  document.write(numPremiados[f] + ": " + premio[f] + '<br>');

  }

 }

</script>

</body>

</html>

Array: métodos push and pop                                                        volver al indice

Definición y ejemplos

/*Crear un vector con 5 valores aleatorios comprendidos entre 1 y 1000. Luego extraer los dos últimos elementos sumarlos y mostrarlos. Imprimir también el tamaño final del vector.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var vec = [];

for(var i=0;i<5;i++)

{

var num = parseInt(Math.random()*1000)+1;

vec[i] = num;

}

var a =  vec.pop();

parseInt(a);

var b =  vec.pop();

parseInt(b);

document.write("Ultimo número: " + a + "<br>");

document.write("Penúltimo número: " + b + "<br>");

document.write("Suma: " + (a + b) + "<br>");

document.write("Tamaño final del vector: " + vec.length);

</script>

</body>

</html>

otra forma de resolverlo…

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var  vec=[];

  var f;

  for(f=0;f<5;f++)

  {

    var nro=1+(Math.random()*1000);

    vec.push(parseInt(nro));

  }

  for(f=0;f<vec.length;f++)

  {

    document.write(vec[f]+'<br>');

  }

  var sumaultimos=vec.pop()+vec.pop();

  document.write('La suma de las dos últimas componentes es:'+sumaultimos+'<br>');

  document.write('Tamaño final del vector'+vec.length+'<br>');

  document.write('Elementos restantes del vector<br>');

  for(f=0;f<vec.length;f++)

  {

    document.write(vec[f]+'<br>');

  }

</script>

</body>

</html>

Array: métodos unshift and shift                                                        volver al indice

Definición y ejemplo

unshift: agrega un elemento al ppio

shift: lo saca.

/* Problema                Ingresar valores por teclado. Los valores menores a 100 ingresarlos al principio del vector y los mayores o iguales a 100 ingresarlos al final. Se finaliza la carga de datos al ingresar el cero. Cuando sale del do/while extraer el último valor ingresado que es el cero del vector. Imprimir el vector en la página*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var  vec=[];

do{

  var nro = prompt("Ingrese un número (para finalizar 0): ", "");

  nro = parseInt(nro);

  if(nro < 100)

  {

  vec.unshift(nro);

  }

  else

  {

  vec.push(nro);

  }

}while (nro !=0);  

vec.shift();

document.write("El vector resultante es: " + vec);

</script>

</body>

</html>

Array: instrucción delete                                                                volver al indice

Definición y ejemplo

delete nombredelvector[posicion];

delete vector[3];

Con el comando anterior estamos eliminando la componente de la posición 3 del vector. Cuando se elimina una componente no se modifica la propiedad length y el vector se convierte en no denso. Si luego tratamos de acceder a dicha posición el resultado es el valor undefined.

Array: métodos sort y reverse                                                        volver al indice

Definición y ejemplo

Ordena alfabeticamente si son strings. Ejemplo vector.sort();

Para que ordene números hay que pasarle una función

Ejemplo:

vector.sort(function (a,b){

   if (a > b)

      return 1;

      else

      return 0;

});

El 0 queda antes -a la izquierda-, por lo cual se ordena de menor a mayor

si queremos invertirlo usaremos vector.reverse();

/* Problema                Cargar los sueldos de un conjunto de empleados. Finalizar la carga al ingresar cero. Mostrar por pantalla los sueldos ordenados de mayor a menor.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var vec=[];

do{

  var num = prompt("Cargue el sueldo: ","");

  num = parseInt(num);

  vec.push(num);

  }

  while (num != 0);

  vec.pop();

  document.write('Vector "sueldos" antes de ordenarlo<br>');

  for(f=0;f<vec.length;f++)

  {

    document.write(vec[f]+'<br>');

  }

  vec.sort(function(v1,v2) {

    if (v1>v2)

      return 1;

    else

      return 0;

  });

  document.write('Vector "sueldos" después de ordenarlo de menor a mayor<br>');

  for(f=0;f<vec.length;f++)

  {

    document.write(vec[f]+'<br>');

  }

  document.write('Vector "sueldos" después de ordenarlo de mayor a menor<br>');

  vec.reverse();

  for(f=0;f<vec.length;f++)

  {

    document.write(vec[f]+'<br>');

  }

</script>

</body>

</html>

Array: método splice                                                                volver al indice

Definición y ejemplo

para borrar el primer parámetro es desde donde borramos y el segundo es cuántos parámetros borramos.

vector.splice(3,4);   va a borrar desde la posición 3 -contando desde 0-  4 elementos.

si queremos guardar el vector que borramos...

var vector2 = vector.splice(3,4);

si pasamos el primer parámetro negativo, cuenta desde el final del vector

vector.splice(-3,2);  borrará de los 3 últimos elementos del vector los primeros 2.

el vector [1,2,3,4,5,6,7,8,9] quedará [1,2,3,4,5,6,9]

para insertar usamos mín 3 parámetros y el segundo es 0 -porque no queremos borrar ningún elemento-

vector.splice(3,0,40,’a’,4,”ultimo”);  ingresa desde la posición 3-contando desde 0-, sin borrar ninguno, los valores 40, a… etc.

el vector anterior quedará [1,2,3,40,a,4,ultimo,4,5…]

para borrar e insertar funciona igual que para insertar pero el segundo parámetro indicará cuántos elementos queremos borrar.

vector.splice(3,3,’a’,’b’,’c’); desde la posición 3 borrará 3 elementos y agregará otros 3

el vector [1,2,3,4,5,6,7,8,9] quedará [1,2,3,a, b, c,9]

para vector.splice(-4,3,’a’,’b’,’c’); cuenta 4 posiciones desde el final, borra 3 y agrega 3.

/* Problema                Crear un vector con una lista de valores. Luego borrar las componentes donde hay un 2 y al mismo tiempo insertar dos elementos con el valor 1.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var vector = [3,6,4,2,6,3,9,5,2];

document.write("Vector original: "+vector+"<br>");

for(var i=0; i < vector.length; i++)

{

 if (vector[i]=="2")

 {

 vector.splice(i,1);

 }

}

document.write("Vector sin los 2: "+vector+"<br>");

vector.splice(1,0,1,1);

document.write("Vector final con los 1: "+vector+"<br>");

</script>

</body>

</html>

     

Array: método slice                                                                                volver al indice

Definición y ejemplo

/* Problema                Crear un vector de 10 elementos con valores aleatorios comprendidos entre 0 y 1000. Buscar el menor y luego generar otro vector a partir de dicha posición hasta el final.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var vector = [];

var i;

for (i=0;i<10;i++)

{

vector[i]= parseInt(Math.random()*1001);

}

document.write("Vector de 10 elementos entre 0 y 1000:<br>");

for (i=0;i<10;i++)

{

document.write(vector[i]+"<br>");

}

var menor = vector[0];

pos=0;

for (i=1;i<vector.length;i++)

{

  if (vector[i]<menor)

    {

     menor=vector[i];

     pos=i;

    }  

}

document.write("El elemento menor del vector es: "+menor+"<br>");

var vector2 = vector.slice(pos);

document.write("El nuevo vector es:<br>");

for (i=0;i<vector2.length;i++)

document.write(vector2[i]+"<br>");

</script>

</body>

</html>

Array: método join                                                                        volver al indice

Definición y ejemplo

/* Problema                Crear un vector con los datos de 5 personas. Luego imprimir por pantalla uno abajo de otro utilizando el método join para generar un string y agregarle entre elementos la marca html <br>.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var personas = ['Juan', 'Alfredo', 'Adolfo', 'Rodrigo', 'Cora'];

var mostrar = personas.join('<br>');

document.write(mostrar);

</script>

</body>

</html>

Array: método concat                                                                volver al indice

Definición y ejemplo

Array: método tostring                                                                volver al indice

Definición y ejemplo

/* Problema                Crear un vector de 10 elementos. Inicializar los valores del vector cuando se crea. Inicializar dos variables que resulten de llamar primero al método toString() y la segunda variable inicializarla llamando al método join() sin parámetros. Mostrar un mensaje si el resultado de la ejecución de los dos métodos retorna el mismo valor (empleando un if para comparar los string)

*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var vector = [1,2,3,4,5,6,7,8,9,10];

var cadena = vector.toString();

document.write(cadena+"<br>");

var juntando = vector.join();

document.write(juntando+"<br>");

if (cadena == juntando)

document.write("Los dos métodos retornan el mismo valor");

</script>

</body>

</html>

     

Array: distintas formas de recorrerlo                                                volver al indice

Definición y ejemplo

for(var f=0;f<vec.length;f++)   =    for(var f in vec)

Funciones: objeto arguments                                                        volver al indice

Definición y ejemplo

Confeccionar una función que reciba un conjunto de string y genere dentro de la página una lista ordenada (<ol>). La función debe recibir en el primer parámetro el id de un div.

<html>

<head>

<script type="text/javascript">

  window.onload=iniciar;

  function iniciar()

  {

    generarLista('lista1','uno', 'dos', 'tres', 'cuatro', 'cinco');

  }

  function generarLista()

  {

   var s='<ol>';

   for(var i=1;i<arguments.length;i++)

   {

    s=s+'<li>'+arguments[i]+'</li>';

    }

   s=s+'</ol>'

   var elem = document.getElementById(arguments[0]);

   elem.innerHTML=s;

   }

</script>

</head>

<body>

<div id="lista1"></div>

</body>

</html>

/*  Problema                        Confeccionar una función que obtenga y retorne el mayor valor de una lista de enteros que le pasamos como parámetros.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

 

 window.onload=iniciar;

  function iniciar()

  {

    mayor(23,67,23,87,4,9);

  }

  function mayor()

  {

   var m=arguments[0];

   for(var i=1; i<arguments.length;i++)

    {

     if (arguments[i]>m)

       

     m=arguments[i];

     }

   document.write(m);

  }

</script>

</body>

</html>

Funciones: variables locales y variables globales                                volver al indice

Definición y ejemplo

‘use strict’;   o  “use strict”;  al ppio del script nos obliga a siempre tener que escribir var antes de crear la variable, con lo cual nos evitamos crear variables globales por error dentro de una función.

Funciones: caracteres válidos para su nombre                                        volver al indice

Definición y ejemplo

se usa escribir la primer palabra en minúscula y la/s siguiente/s en mayúscula

Funciones anidadas                                                                        volver al indice

Definición y ejemplo

/*  Problema                        Confeccionar una función que reciba un parámetro y defina una variable local. Definir dentro de la función que acabamos de crear una función anidada que contenga un parámetro.

En la función anidada imprimir el parámetro de la función que la contiene, el parámetro que tiene la función anidada y el valor de la variable local de la función principal.*/

<html>

<head>

<script type="text/javascript">

  function principal(x)

  {

    var z = 10;

    function imprimir(y)

    {

      document.write('param de la f que la contiene: '+ x + "<br>");

      document.write("param de la f anidada: "+ z  + "<br>");

      document.write("valor de la variable local de la f ppal: "+ y  + "<br>");

    }

   imprimir("elefantes");

   }

principal("mirando");

</script>

</head>

<body>

</body>

</html>

Funciones: parámetros de tipo función                                                volver al indice

Definición y ejemplo

-Podemos asignar una función a una variable:

var f1=function(x,y)

{

codigo

}

Para llamar a la función en la variable >   f1(3,5)

-Una función puede recibir como parámetro otra función y llamarla desde dentro de sí misma.

function calcular(x,y,fu)
 {
   var resu=fu(x,y);
   return resu;
 }

 var s1=calcular(10,5,function (v1,v2) {
   return v1+v2;
 });
 
 document.write(s1+'<br>');

Eventos                                                                                volver al indice

Definición y ejemplo

Uno de los usos principales de JavaScript es la implementación de algoritmos que reaccionan a eventos que se producen en una página web, eventos que nos informa el navegador y nosotros podemos capturarlos y hacer un algoritmo a nuestra medida.

3 formas de tomar los eventos que pasa el navegador:

Eventos definidos directamente en la marca HTML [Se usó entre 1990 y 2000. Ej: onsubmit=”validar();”  la función se llama desde dentro de un formulario. ]

Eventos definidos accediendo a propiedades del objeto [Esta metodología todavía se usa mucho. Ej: al formulario le doy un ID=”formulario1” y lo llamo desde el script (document.getElementById(“formulario1”).onsubmit=...). De esta forma el script puede estar en un archivo externo .js]

Modelo de eventos definido por W3C [Un método para todos los objetos, nos permite registrar eventos. La sintaxis:

addEventListener(‘evento a inicializar’, método a ejecutar, false);

ej:  document.getElementById(‘elementID’).addEventListener(“click”, nombre_de_la_función, false);

En el ejemplo anterior:  

window.addEventListener(‘load’,inicio, false);   ==  addEventListener(‘load’,inicio, false);

document.getElementById(“formulario1”).addEventListener(‘submit’, validar, false);

El código de la función validar se modifica. Como parámetro se hace referencia a un evento > validar(evt)   y llamamos al método preventDefault > evt.preventDefault();  si queremos que no se envíen los datos al servidor.

Este modelo de eventos está siendo aceptado por los browsers modernos. Pero IE8 -y para abajo- no lo implementan…]

Eventos: click y dblclick                                                                volver al indice

Definición y ejemplo

/*  Problema                        Realizar un programa que muestre en un div el número 2. Cada vez que se hace doble clic sobre el mismo duplicar el valor contenido en el div.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

addEventListener('load', inicio, false);

function inicio()

{

document.getElementById('numero').addEventListener('dblclick', duplicar, false);

}

function duplicar()

{

  numero.innerHTML = Number(numero.innerHTML)*2;

}

</script>

<div id="numero">2</div>

</body>

</html>

     

en lugar de document.getElementById(‘numero’) usé numero

Otra opción sería:

<html>

<head>

<script type="text/javascript">

  addEventListener('load',inicio,false);

  function inicio()

  {

    document.getElementById('numero').addEventListener('dblclick',duplicar,false);

  }

  function duplicar()

  {

    var valor=document.getElementById('numero').innerHTML;

    valor=parseInt(valor);

    var resultado=valor*2;

    document.getElementById('numero').innerHTML=resultado;

  }

</script>

</head>

<body>

<div id="numero">2</div>

</body>

</htm>

Eventos: mousedown y mouseup                                                        volver al indice

Definición y ejemplo

/*  Problema                        Elaborar un programa que muestre un div de color rojo. Cuando se presione cambiar el color a amarillo y luego de soltar el botón del mouse volver a pintar de rojo.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

addEventListener('load', inicio, false);

function inicio()

{

color.addEventListener('mousedown', yellow, false);

color.addEventListener('mouseup', red, false);

}

function yellow()

{

color.style.backgroundColor = "yellow";

}

function red()

{

color.style.backgroundColor = "red";

}

</script>

<div style="width:200px; height:200px; background-color:red;" id="color"></div>

</body>

</html>

Otra resolución

<html>

<head>

<script type="text/javascript">

  addEventListener('load',inicio,false);

  function inicio()

  {

    document.getElementById('recuadro1').addEventListener('mousedown',presion1,false);

    document.getElementById('recuadro1').addEventListener('mouseup',presion2,false);

  }

  function presion1()

  {

    document.getElementById('recuadro1').style.backgroundColor='#ffff00';

  }

  function presion2()

  {

    document.getElementById('recuadro1').style.backgroundColor='#ff0000';

  }

</script>

</head>

<body>

<div style="width:200px;height:200px;background:#ff0000" id="recuadro1">

</div>

</body>

</html>

Eventos: mouseover y mouseout                                                        volver al indice

Definición y ejemplo

/*  Problema                        Shift+Cmd+V*/

<html>

<head>

<script type="text/javascript">

  addEventListener('load',inicio,false);

  function inicio()

  {

    document.getElementById('titulo1').addEventListener('mouseover',cambio,false);

    document.getElementById('titulo1').addEventListener('mouseout',fuera,false);

  }

  function cambio()

  {

    document.getElementById('titulo1').style.backgroundColor='#ffff00';

    document.getElementById('titulo1').style.color='#ff0000';

  }

  function fuera()

  {

    document.getElementById('titulo1').style.backgroundColor='#ccc';

    document.getElementById('titulo1').style.color='#ff0000';

  }

</script>

</head>

<body>

<h1 style="color:#ff0000;background:#ccc" id="titulo1">Este es el título

</h1>

</body>

</html>

Otra resolución

<html>

<head>

<script type="text/javascript">

  addEventListener('load',inicio,false);

  function inicio()

  {

    document.getElementById('titulo').addEventListener('mouseover',entrada,false);

    document.getElementById('titulo').addEventListener('mouseout',salida,false);

  }

  function entrada()

  {

    document.getElementById('titulo').style.color='#ff0000';

    document.getElementById('titulo').style.backgroundColor='#ffff00';

  }

  function salida()

  {

    document.getElementById('titulo').style.color='#000000';

    document.getElementById('titulo').style.backgroundColor='#ffffff';

  }

</script>

<style>

body {

  background:#ffffff;

}

</style>

</head>

<body>

<h1 id="titulo">Titulo principal</h1>

</div>

</body>

</html>

Evento: mousemove                                                                volver al indice

Definición y ejemplo

Concepto(Shift+Cmd+V)                                                                volver al indice

Definición y ejemplo

/*  Problema                        Shift+Cmd+V*/

Eventos: keydown, keyup y keypress                                                volver al indice

Definición y ejemplo

Evento: change                                                                        volver al indice

Definición y ejemplo

/*  Problema                        Confeccionar un formulario que muestre un checkbox que cuando se tilde active un botón (el checkbox debe mostrar un mensaje que diga : "Confirma los términos y condiciones?")*/

Agregué la opción de que se oculte el botón cuando se desactive el checkbox

<html>

<head>

</head>

<body>

<script type="text/javascript">

addEventListener('load', inicio, false);

function inicio()

{

 document.getElementById('checkbox1').addEventListener('change', activarBoton, false);

}

function  activarBoton()

{

  if (document.getElementById('checkbox1').checked)

  {

   document.getElementById('boton1').style.display="block";

  }else

  {

  document.getElementById('boton1').style.display="none";

  }

}

</script>

Confirma los términos y condiciones?:

<input type="checkbox" id="checkbox1" name="checkbox1" >

</br>

<input type="button" value="Botón" id="boton1" onClick=""  style="display:none;">

</body>

</html>

     

Eventos: focus y blur                                                                volver al indice

Definición y ejemplo

El ejemplo se puede simplificar de la siguiente manera...

<html>

<head>

<script type="text/javascript">

  addEventListener('load',inicio,false);

  function inicio()

  {

    document.getElementById('text1').addEventListener('focus',tomarfoco,false);

    document.getElementById('text2').addEventListener('focus',tomarfoco,false);

    document.getElementById('text1').addEventListener('blur',perderfoco,false);

    document.getElementById('text2').addEventListener('blur',perderfoco,false);

  }

 

  function tomarfoco()

  {

    this.style.color='#ff0000';

  }

  function perderfoco()

  {

    this.style.color='#000000';

  }

</script>

</head>

<body>

<input type="text" id="text1" name="text1" size="30">

<br>

<input type="text" id="text2" name="text2" size="30">

</body>

</html>

Parámetro del método asociado al addEventListener                                volver al indice

Definición y ejemplo

/*  Problema                        Shift+Cmd+V*/

Evento: submit                                                                        volver al indice

Definición y ejemplo

/*  Problema                        Shift+Cmd+V*/

Operadores de igualdad y desigualdad (==, ===, !=, !==)                        volver al indice

Definición y ejemplo

/*  Problema                        Shift+Cmd+V*/

Función isNaN                                                                        volver al indice

Definición y ejemplo

/*  Problema                        Shift+Cmd+V*/

Función isFinite                                                                volver al indice

Definición y ejemplo

/*  Problema                        Se ingresan por teclado dos números (emplear parseFloat para convertirlos) mostrar un mensaje si alguno de los dos no es un número (isNaN). Luego si son valores numéricos proceder a multiplicarlos y verificar si el resultado es finito (isFinite) para mostrar el resultado.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

addEventListener ('load',inicio, false);

function inicio()

{

 var num1 = parseFloat (prompt("ingrese un número: ", ""));

 var num2 = parseFloat (prompt("ingrese otro número: ", ""));

 if (isNaN(num1) || isNaN(num2))

 {

 document.write("alguno de los dos num ingresados no es un valor numérico");

 document.write("<br>");

 } else

   {

   var prod = num1 * num2;

   if (isFinite(prod)) {

     document.write("El prod tiene un valor finito que es: " + prod);

     document.write("<br>");}

   else {

     document.write("El prod no tiene un valor finito, el resultado es: " + prod);}

   }

}

</script>

</body>

</html>

Funciones setInterval, clearInterval, setTimeout y clearTimeout                volver al indice

Definición y ejemplo

/*  Problema                        Connfeccionar una página que luego de 10 segundos redireccione a otro sitio empleando para ello la función setTimeout.*/

Lo del contador es agregado mío...

<html>

<head>

</head>

<body>

<script type="text/javascript">

addEventListener ('load', inicio, false);

var cronom;

function inicio()

{

 cronom= setInterval(cuenta,1000);

 limite= setTimeout(linkear, 5000);

}

function cuenta()

{

 var num=parseInt(document.getElementById('counter').innerHTML);

 num--;

 document.getElementById('counter').innerHTML=num;

}

function linkear()

{

 window.location='http://web.cruzjurado.com';

}

</script>

<style>

 #counter {

   font-size:50px;

   color:red;

   padding:20px;

 }

</style>

<h1>Esta pagina se redireccionará en: </h1>

<span id=counter>5<span>

</body>

</html>

     

Operador condicional ?:                                                                volver al indice

Definición y ejemplo

El operador ternario tiene la siguiente sintaxis:

 condición ? instrucción 1 : instrucción 2;

La condición siempre debe generar un resultado de tipo boolean (true/false)

Si la condición se verifica verdadera se ejecuta la instrucción 1, que es la que se encuentra a la izquierda del carácter ":", en cambio si la condición se verifica false se ejecuta la instrucción 2.

/*  Problema                        Ingresar el sueldo bruto de un trabajador. Si supera a 10000 aplicar un descuento del 10%, en caso contrario el descuento es del 5%.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var sueldo = parseInt(prompt("Ingrese sueldo bruto: ", ''));

sueldo>10000 ? sueldo=sueldo-(sueldo*.1) : sueldo=sueldo-(sueldo*.05);

document.write("sueldo con el descuento: " + sueldo);

</script>

</body>

</html>

     

Expresiones regulares                                                                volver al indice

Definición y ejemplo (javascriptya)

Definición y ejemplo (Developer.mozilla.org) más completo, en ingles

Expresiones regulares: (^ principio $ fin) de cadena                                volver al indice

Definición y ejemplo

Expresiones regulares: [] conjunto de caracteres opcionales                volver al indice

Definición y ejemplo

El signo ^ dentro y fuera de los corchetes tiene distinto significado:

 var patron=/[aeiouAEIOUáéíóú]$/;          indica palabra que termina con vocal

 var patron=/[^aeiouAEIOUáéíóú]$/;               indica palabra que NO termina con vocal

 var patron=/^[aeiouAEIOUáéíóú]/;          indica palabra que empieza con vocal

Expresiones regulares: cuantificadores o repeticiones {x} {x,y} {x,}        volver al indice

Definición y ejemplo

/*  Problema        1                Validar que se ingrese un número de 3 dígitos enteros, el carácter punto y 2 dígitos decimales*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var oracion=prompt('Ingrese una oración que contenga 3 enteros seguidos de punto y otros 2 enteros \(antes y despues debe haber espacio\)','');

  var patron=/\s[0-9]{3}.[0-9]{2}\s/;

  if (patron.test(oracion))

    alert('validacion correcta');

  else

    alert('No cumple los requisitos');

</script>

</body>

</html>

/*  Problema        2                Solicitar el ingreso de la coordenada de un punto. El formato a ingresar por teclado es: (999,999)

Los números pueden tener entre 1 y 3 dígitos.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var coord = prompt('Ingrese su coordinada: ', '');

var patron = /\([0-9]{1,3},[0-9]{1,3}\)/;

if (patron.test(coord))

 document.write("El codigo ingresado es correcto");

else

 document.write("codigo incorrecto");

</script>

</body>

</html>

Exp reg: metacaracteres de cuantificadores alternativos * ? +                volver al indice

Definición y ejemplo

?    busca cero o una ocurrencia en el string                             nos sirve para algo opcional

     remplaza a    {0,1}

*    busca cero o más ocurrencias en el string

     remplaza a    {0,}

+    busca una o más ocurrencias en el string                        al menos tiene que haber 1

     remplaza a    {1,}

ejemplos1: palabra que contenga al menos una vocal

var patron=/[aeiou]+/;

ejemplo2: numero entero con opcion de +/- adelante

var patron=/^[\+\-]?[0-9]+$/;

ejemplo3: numero obligatorio, punto opcional, y termine en numero.

 var patron=/^[0-9]+\.?[0-9]+$/;

Expresiones regulares abreviadas: \d \w \s \D \W                                volver al indice

Definición y ejemplo

Abreviaciones:

\d      [0-9]

\D      [^0-9]

\w      [a-zA-Z0-9_]

\W      [^a-zA-Z0-9_]

\s        espacio en blanco

d (for decimal), w (for word), s (for space)

ejemplo1: ingresar exactamente 5 dígitos

 var patron=/^\d{5}$/;                 ...es lo mismo que...

 var patron=/^[0-9]{5}$/;

/*  Problema                        Validar si un string contiene 4 números de 3 dígitos cada uno separados por coma.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var oracion=prompt('Ingrese una oracion que contenga 4 números de 3 dígitos cada uno separados por coma.','');

  var patron=/\s?\d{3},\d{3},\d{3},\d{3}\s?/;

  if (patron.test(oracion))

    document.write('cumple los requisitos');

  else

    document.write('no cumple los requisitos');

</script>

</body>

</html>

Expresiones regulares: alternancia |                                                volver al indice

Definición y ejemplo

ejemplo1: (numero de factura) que empiece con a, b o c y tenga al menos un digito

 var patron=/^[a|b|c]\d+$/;

/*  Problema                        Confeccionar una expresión regular que valide el ingreso del nombre de un día de la semana y un número de 1 o 2 dígitos.*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

var oracion = prompt("Ingrese el día de la semana (en minúsculas y con acentos) y el número: ",'');

var patron = /[lunes|martes|miércoles|jueves|sábado|domingo]\s?\d{1,2}$/;

if (patron.test(oracion))

 document.write(oracion + " cumple los requisitos");

else

  document.write(oracion + " No cumple los requisitos");

</script>

</body>

</html>

Si agrego ^ para indicar que la oración comience con algun día de la semana, me deja de funcionar…

Expresiones regulares: metacarácter punto                                        volver al indice

Coincide con cualquier carácter (menos salto de línea)

Definición y ejemplo

ejemplo1: palabra de 5 caracteres que empiece y termine con a

var patron=/^a...a$/;

o

var patron=/^a.{3}a$/;

recordar, si queremos el punto como dato, escaparlo  \.

ejemplo2: que tenga el formato 999.99

 var patron=/^\d{3}\.\d{2}$/;

Expresiones regulares: agrupación en subpatrones ()                        volver al indice

Definición y ejemplo

ejemplo: validar un día del mes

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var dia=prompt('ingrese un número de 1 o 2 dígitos menor a 31:','');

  var patron=/^(\d|0[1-9]|1\d|2\d|3[0-1])$/;

  if (patron.test(dia))

    alert('Correcto');

  else

    alert('Incorrecto');

</script>

</body>

</html>

Es importante marcar el principio ^ y fin $, porque sino un número de más dígitos lo puede contener...

/*  Problema                        Validar el ingreso de una hora con el formato hh:mm:ss o hh:mm*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var hora=prompt('ingrese una hora con el formato hh:mm:ss \(los segundos opcionales\):','');

  var patron=/^(0\d|1\d|2[0-3]):([0-6]\d)(:[0-6]\d)?$/;

  if (patron.test(hora))

    alert('Correcto');

  else

    alert('Incorrecto');

</script>

</body>

</html>

Expresiones regulares: métodos test y exec del objeto RegExp                volver al indice

Definición y ejemplo

el método test nos da true si el string que le pasamos cumple el valor propuesto.

El método exec nos da un vector con más datos si el string cumple el valor propuesto, en caso contratio nos da null.

El método exec nos permite analizar un patrón que ocurre más de una vez en una oración.

El vector devuelto tiene dos propiedades:

-        index        devuelve la posicion del string donde se cumple el patron

-        input        almacena la cadena que se está analizando

 var oracion='saliendo de la casa que esta en la montaña';
 var patron1=/la/;
 var vector1=patron1.exec(oracion);
 document.write(vector1.index);
                 nos devuelve la posición 12, index de “l”a
 document.write('<br>');
 document.write(vector1.input);
                nos devuelve la oración
 document.write('<br>');
 var patron2=/lax/;
 var vector2=patron2.exec(oracion);
 document.write(vector2);
                        nos devuelve “null”. (si en vez de lax hubieramos escrito “esta” eso es lo que nos devolvería, ya que no especificamos ninguna de las 2 propiedades.

Expr reg: modificadores i (insensitive) g (global) m (multiline)                volver al indice

Nota: También se les llama “banderas” o “flags” a i, g y m...

Definición y ejemplo

/*  Problema                        Indicar las posiciónes de la palabra “el” (mayúscula o minúscula) en la frase “El corcel de Manuel es un rebelde”*/

<html>

<head>

</head>

<body>

<script type="text/javascript">

  var src = "El corcel de Manuel es un rebelde.";

    var patron = /el/gi;

    var vector;

    while ( (vector = patron.exec(src)) != null)

       document.write(vector.index + "<br>");

</script>

</body>

</html>

     

Exp reg: métodos search, replace, split, match del objeto String.                volver al indice

Definición y ejemplo

/*  Problema                        Shift+Cmd+V*/

Continuar con DHTML