viernes, 27 de abril de 2007

@ariverar




Cloud computing




CloudTech

About Blog CloudTech is a leading blog and news site that is dedicated to cloud computing strategy and technology. 
With authors including IBM’s Sebastian Krause, Cloudonomics author Joe Weinman, and Ian Moyse from the Cloud 
Industry Forum, CloudTech has hundreds of blogs about numerous cloud-related topics and reaches over 320,000 
cloud computing professionals. 
Frequency about 8 posts per week. 




CloudTweaks
About Blog CloudTweaks is one of the most informative cloud blogs on the Internet. In addition to numerous 
contributors and a lengthy list of posts, CloudTweaks has various other forms of content, such as statistics, 
infographics, event announcements, and – you guessed it –cloud comics!
Frequency about 14 posts per week. 



Reddit - Cloud computing
About Blog News, articles and tools covering cloud computing, grid computing, and distributed computing.
Frequency about 4 posts per week. 
Website reddit.com/




Cloud Computing Magazine

About Blog Covering the latest news and featuring original articles on Cloud Computing.
Frequency about 42 posts per week. 



Cloudwards

About Blog Independent cloud storage and web services reviews, news and comparison tables. Find the best cloud 
provider and compare the major services.
Frequency about 4 posts per week. 







































 ============  ============  ============  ============ 
 ============  ============  ============  ============ 

                       javascript

 ============  ============  ============  ============ 
 ============  ============  ============  ============ 

*************************************
esqueleto

Como se utiliza Java script





*************************************
notepad ++
*************************************

Como se utiliza Java script


 multiplicacion?

Hola Antonio !!!


*************************************

*************************************
*************************************


Como se utiliza JavaScript


numero 1:

numero 2:








=============================
ventana google  ============   pag 12

..
Hola antonio !!!
==$0

https://desarrolloweb.com/articulos/ejemplos/javascript/abrir_vent_1.html

Mensaje =========


¿Ha salido el mensaje?


Fecha  ===========

¿Esta es la fecha actual?


Un poco raro ¿no?, pero ya aprenderemos a darle formato.


boton atraz ============   pag 13


ocultar codigo  =============  pag 17

-->

mensaje en antoguos navegadores ==========  pag 18



lenguaje version ============ pag 18


comentarios  =========


variables ===================  22

sumando1 = 23
sumando2 = 33
suma = sumando1 + sumando2

var operando1
var operando2

var operando1 = 23
var operando2 = 33

var operando1,operando2

varibles globales =========24

Variables locales
 ========  25


=========================== locales y globales




===============  diferencias entre variables  pag 26


==============  guardar en variable




var nombre_ciudad = "Valencia"      (cadenas)
var revisado = true                 (boleano)
nombre_ciudad = 32                   (numeros)
revisado = "no"                     (boleano)


====================   pag  28


var sumando1 = 23
var sumando2 = "33"
var suma = sumando1 + sumando2
document.write(suma)


imprime  2333   concatenacion no suma

==================   tipo boleano   pag 29

Base 10  decimal

Base 8   dígitos del 0 al 7

Base 16 o sistema hexadecimal  16 dígitos



miBoleana = true

miBoleana = false

=========cadena de caracteres  pag 29

miTexto = "Pepe se va a pescar"
miTexto = '23%%$ Letras & *--*'


caracteres de escape

Salto de línea: \n Comilla simple: \' Comilla doble: \" Tabulador: \t Retorno de carro: \r
Avance de página: \f Retroceder espacio: \b Contrabarra: \




============  operadores  pag  31


miVariable = 23 * 5


============  operadores de asignacion   pag 32

precio = 128 //introduzco un 128 en la variable precio
unidades = 10 //otra asignación, luego veremos operadores de asignación
factura = precio * unidades //multiplico precio por unidades, obtengo el valor factura
resto = factura % 3 //obtengo el resto de dividir la variable factura por 3
precio++ //incrementa en una unidad el precio (ahora vale 129)



ahorros = 7000 //asigna un 7000 a la variable ahorros
ahorros += 3500 //incrementa en 3500 la variable ahorros, ahora vale 10500
ahorros /= 2 //divide entre 2 mis ahorros, ahora quedan 5250



================   Operadores de cadenas  pag 33

cadena1 = "hola"
cadena2 = "mundo"
cadenaConcatenada = cadena1 + cadena2 //cadena concatenada vale "holamundo"



miNumero = 23
miCadena1 = "pepe"
miCadena2 = "456"
resultado1 = miNumero + miCadena1 //resultado1 vale "23pepe"
resultado2 = miNumero + miCadena2 //resultado2 vale "23456"
miCadena2 += miNumero //miCadena2 ahora vale "45623"

operadores logicos  =======  35

! Operador NO o negación. Si era true pasa a false y viceversa. && Operador Y, si son los dos
verdaderos vale verdadero. || Operador O, vale verdadero si por lo menos uno de ellos es
verdadero.




miBoleano = true
miBoleano = !miBoleano //miBoleano ahora vale false
tengoHambre = true
tengoComida = true
comoComida = tengoHambre && tengoComida


Operadores condicionales
 ========   35

Comprueba si dos valores son iguales != Comprueba si dos valores son distintos

Mayor que, devuelve true si el primer operando es mayor que el segundo < Menor que, es
true cuando el elemento de la izquierda es menor que el de la derecha = Mayor igual <=
Menor igual



ejemplos   pag  36 ==========


12 * 3 + 4 - 8 / 2 % 3


En este caso primero se ejecutan los operadores * / y %, de izquierda a derecha, con lo que se
realizarían estas operaciones. Primero la multiplicación y luego la división por estar más a la
izquierda del módulo.


36 + 4 - 4 % 3
36 + 4 - 1
40 - 1
39  



Control de tipos =============  pag 38




var boleano = true
var numerico = 22
var numerico_flotante = 13.56
var texto = "mi texto"
var fecha = new Date()
document.write("
El tipo de boleano es: " + typeof boleano)
document.write("
El tipo de numerico es: " + typeof numerico)
document.write("
El tipo de numerico_flotante es: " + typeof numerico_flotante)
document.write("
El tipo de texto es: " + typeof texto)
document.write("
El tipo de fecha es: " + typeof fecha)




boolean, para los datos boleanos. (True o false)
number, para los numéricos.
string, para las cadenas de caracteres.
object, para los objetos.



bucles  pag 41 =================================  estructuras de ctrl
IF
SWITCH



bucle

FOR
WHILE
DO WHILE





if (expresión) {
//acciones a realizar en caso positivo

//...
}




if (expresión) {
//acciones a realizar en caso positivo
//...
} else {
//acciones a realizar en caso negativo
//...
}


=============================  if   pag 41


if (llueve)
alert("Cae agua");

Sería exactamente igual que este código:

if (llueve){
alert("Cae agua");
}


O incluso, igual a este otro:


if (llueve) alert("Cae agua");

=======================   condicional


if (dia == "lunes")
document.write ("Que tengas un feliz comienzo de semana")


==========   pag  42


if (credito >= precio) {
document.write("has comprado el artículo " + nuevoArtículo) //enseño compra
carrito += nuevoArticulo //introduzco el artículo en el carrito de la compra
credito -= precio //disminuyo el crédito según el precio del artículo
} else {
document.write("se te ha acabado el crédito") //informo que te falta dinero
window.location = "carritodelacompra.html" //voy a la página del carrito
}


============


if (edad > 18)
document.write("puedes ver esta página para adultos")

==========


if (bateria < 0.5 && redElectrica == 0)
document.write("tu ordenador portatil se va a apagar en segundos")


=========  pag 44

var numero1=23
var numero2=63
if (numero1 == numero2){
document.write("Los dos números son iguales")
}else{
if (numero1 > numero2) {
document.write("El primer número es mayor que el segundo")
}else{
document.write("El primer número es menor que el segundo")
}
}


oerador if =======  pag 45

Variable = (condición) ? valor1 : valor2

ejemplo

momento = (hora_actual < 12) ? "Antes del mediodía" : "Después del mediodía"



==========  SWITCH  ===========  pag 46



switch (expresión) {
case valor1:
Sentencias a ejecutar si la expresión tiene como valor a valor1
break
case valor2:
Sentencias a ejecutar si la expresión tiene como valor a valor2
break
case valor3:
Sentencias a ejecutar si la expresión tiene como valor a valor3
break
default:
Sentencias a ejecutar si el valor no es ninguno de los anteriores
}


ejemplo


switch (dia_de_la_semana) {
case 1:
document.write("Es Lunes")
break
case 2:
document.write("Es Martes")
break
case 3:
document.write("Es Miércoles")
break
case 4:
document.write("Es Jueves")
break
case 5:
document.write("Es viernes")
break
case 6:
case 7:
document.write("Es fin de semana")
break
default:
document.write("Ese día no existe")
}


FOR =================  pag  47


for (inicialización; condición; actualización) {
//sentencias a ejecutar en cada iteración
}



ejemplo   0,1,2,3,4... 10

var i
for (i=0;i<=10;i++) {
document.write(i)
document.write("
")
}


===============

Por ejemplo si queremos escribir los número del 1 al 1.000 de dos en dos se escribirá el
siguiente bucle.

for (i=1;i<=1000;i+=2)
document.write(i)

===============


if (x==2 && y!=3){
//la variable x vale 2 y la variable y es distinta de tres
}

=============================




Si queremos contar descendentemente del 343 al 10 utilizaríamos este bucle.
for (i=343;i>=10;i--)
document.write(i)

===========  ejemplo bucle for  49

Lo que deseamos escribir en una página web mediante Javascript es lo siguiente:

Encabezado de nivel 1

Encabezado de nivel 2

Encabezado de nivel 3

Encabezado de nivel 4

Encabezado de nivel 5
Encabezado de nivel 6

Para ello tenemos que hacer un bucle que empiece en 1 y termine en 6 y en cada iteración
escribiremos el encabezado que toca.

for (i=1;i<=6;i++) {
document.write("Encabezado de nivel " + i + "")
}




Encabezado de nivel 1
Encabezado de nivel 2
Encabezado de nivel 3
Encabezado de nivel 4
Encabezado de nivel 5
Encabezado de nivel 6

===========  Bucle WHILE

while (condición){
//sentencias a ejecutar
}

Un ejemplo de código donde se utiliza este bucle se puede ver a continuación.


var color = ""
while (color != "rojo"){
color = prompt("dame un color (escribe rojo para salir)","")
}



se repite hasta se ingrese como color el texto "rojo".


=============  Bucle DO...WHILE  pagina 51


do {
//sentencias del bucle
} while (condición)


El bucle se ejecuta siempre una vez y al final se evalúa la condición para decir si se ejecuta otra
vez el bucle o se termina su ejecución.
Veamos el ejemplo que escribimos para un bucle WHILE en este otro tipo de bucle.


var color
do {
color = prompt("dame un color (escribe rojo para salir)","")
} while (color != "rojo")



ejemplo


var suma = 0
while (suma < 1000){
suma += parseInt(Math.random() * 100)
document.write (suma + "
")
}

=================  pag 53


break: Significa detener la ejecución de un bucle y salirse de él.
continue: Sirve para detener la iteración actual y volver al principio del bucle para
realizar otra iteración, si corresponde.


for (i=0;i<10 i="" p="">
document.write (i)
escribe = prompt("dime si continuo preguntando...", "si")
if (escribe == "no")
break
}


==================

var i=0
while (i<7 p="">
incrementar = prompt("La cuenta está en " + i + ", dime si incremento", "si")
if (incrementar == "no")
continue
i++
}

=========

for (i=0;i<=1000;i++){
document.write(i + "
")
if (i==333)
break;
}


===========  bucles anidados

for (i=0;i<10 i="" p="">
for (j=0;j<10 j="" p="">
document.write(i + "-" + j)
}
}

===========   pagina 55

Veamos un ejemplo muy parecido al anterior, aunque un poco más útil. Se trata de imprimir
en la página las todas las tablas de multiplicar. Del 1 al 9, es decir, la tabla del 1, la del 2, del 3...

Con el primer bucle controlamos la tabla actual y con el segundo bucle la desarrollamos. En el
primer bucle escribimos una cabecera, en negrita, indicando la tabla que estamos escribiendo,
primero la del 1 y luego las demás en orden ascendente hasta el 9. Con el segundo bucle escribo
cada uno de los valores de cada tabla. 

for (i=1;i<10 i="" p="">
document.write("
La tabla del " + i + ":
")
for (j=1;j<10 j="" p="">
document.write(i + " x " + j + ": ")
document.write(i*j)
document.write("
")
}
}


Tablas de multiplicar

La tabla del 1:
1 x 1: 1
1 x 2: 2
1 x 3: 3
1 x 4: 4
1 x 5: 5
1 x 6: 6
1 x 7: 7
1 x 8: 8
1 x 9: 9

La tabla del 2:
2 x 1: 2
2 x 2: 4
2 x 3: 6
2 x 4: 8
2 x 5: 10
2 x 6: 12
2 x 7: 14
2 x 8: 16
2 x 9: 18

La tabla del 3:
3 x 1: 3
3 x 2: 6
3 x 3: 9
3 x 4: 12
3 x 5: 15
3 x 6: 18
3 x 7: 21
3 x 8: 24
3 x 9: 27

La tabla del 4:
4 x 1: 4
4 x 2: 8
4 x 3: 12
4 x 4: 16
4 x 5: 20
4 x 6: 24
4 x 7: 28
4 x 8: 32
4 x 9: 36

La tabla del 5:
5 x 1: 5
5 x 2: 10
5 x 3: 15
5 x 4: 20
5 x 5: 25
5 x 6: 30
5 x 7: 35
5 x 8: 40
5 x 9: 45

La tabla del 6:
6 x 1: 6
6 x 2: 12
6 x 3: 18
6 x 4: 24
6 x 5: 30
6 x 6: 36
6 x 7: 42
6 x 8: 48
6 x 9: 54

La tabla del 7:
7 x 1: 7
7 x 2: 14
7 x 3: 21
7 x 4: 28
7 x 5: 35
7 x 6: 42
7 x 7: 49
7 x 8: 56
7 x 9: 63

La tabla del 8:
8 x 1: 8
8 x 2: 16
8 x 3: 24
8 x 4: 32
8 x 5: 40
8 x 6: 48
8 x 7: 56
8 x 8: 64
8 x 9: 72

La tabla del 9:
9 x 1: 9
9 x 2: 18
9 x 3: 27
9 x 4: 36
9 x 5: 45
9 x 6: 54
9 x 7: 63
9 x 8: 72
9 x 9: 81


*************************************
*************************************
programando en notepad ++
*************************************

Como se utiliza Java script


¿practica la multiplicacion?







Hola Antonio !!!


*************************************

*************************************
*************************************

=========== funciones =====================  pag 57

function nombrefuncion (){
instrucciones de la función
...
}


function escribirBienvenida(){
document.write("

Hola a todos

")
}


Para ejecutar la función utilizamos su nombre seguido de los paréntesis. Por ejemplo, así
llamaríamos a la función escribirBienvenida() que acabamos de crear.

escribirBienvenida()

Colocar la función en el mismo bloque de script




Colocar la función en otro bloque de script:



MI PÁGINA

========= Parámetros pag  60

function escribirBienvenida(nombre){
document.write("

Hola " + nombre + "

")
}

escribirBienvenida("Alberto García")


function escribirBienvenida(nombre,colorTexto){
document.write("")
document.write("

Hola " + nombre + "

")
document.write("
")
}


Llamaríamos a la función con esta sintaxis. Entre los paréntesis colocaremos los valores de los
parámetros.


var miNombre = "Pepe"
var miColor = "red"
escribirBienvenida(miNombre,miColor)

Los parámetros se pasan por valor
 ==========  pag 61


function pasoPorValor(miParametro){
miParametro = 32
document.write("he cambiado el valor a 32")
}
var miVariable = 5
pasoPorValor(miVariable)
document.write ("el valor de la variable es: " + miVariable)


=============  p  62

function media(valor1,valor2){
var resultado
resultado = (valor1 + valor2) / 2
return resultado
}

Para especificar el valor que retornará la función se utiliza la palabra return seguida de el
valor que se desea devolver. En este caso se devuelve el contenido de la variable resultado, que
contiene la media calculada de los dos números.



Para ilustrar esto se puede ver este ejemplo, que llamará a la función media() y guardará el
resultado de la media en una variable para luego imprimirla en la página.


var miMedia
miMedia = media(12,8)
document.write (miMedia)


=========   multipleReturn   pag 64

function multipleReturn(numero){
var resto = numero % 2
if (resto == 0)
return 0
else
return numero
}

=====

function variables_glogales_y_locales(){
var variableLocal = 23
variableGlobal = "qwerty"
}


=========================   pag  65


Funciones incorporadas en Javascript
Estas son las funciones que Javascript pone a disposición de los programadores.

eval(string)

Esta función recibe una cadena de caracteres y la ejecuta como si fuera una sentencia de
Javascript.

parseInt(cadena,base)

Recibe una cadena y una base. Devuelve un valor numérico resultante de convertir la cadena
en un número en la base indicada.
parseFloat(cadena)

Convierte la cadena en un número y lo devuelve.
escape(carácter)

Devuelve un el carácter que recibe por parámetro en una codificación ISO Latin 1.
unescape(carácter)
Hace exatamente lo opuesto a la función escape.
isNaN(número)
Devuelve un boleano dependiendo de lo que recibe por parámetro. Si no es un número
devuelve un true, si es un numero devuelve false.


==================   pag 66

var miTexto = "3 + 5"
eval("document.write(" + miTexto +")")

resultado :
document.write(3 + 5)



document.write (parseInt("34"))
Devuelve el numero 34


document.write (parseInt("101011",2))
Devuelve el numero 43


document.write (parseInt("34",8))
Devuelve el numero 28


document.write (parseInt("3F",16))
Devuelve el numero 63


document.write (parseInt("3.38"))
Devuelve el numero 3


document.write (parseInt("desarrolloweb.com"))


Devuelve el numero NaN
 (Not a Number)


document.write (parseInt("16XX3U"))
Devuelve el numero 16


document.write (parseInt("TG45"))
Devuelve el numero NaN

=======

miInteger = parseInt("A3.6")
isNaN(miInteger)

true

miFloat = parseFloat("4.7")
isNaN(miFloat)



false


============== Array  pag  70


var miArray = new Array()

var miArray = new Array(10)

En este caso indicamos que el array va a tener 10 posiciones, es decir, 10 casillas donde
guardar datos.

miArray[0] = 290
miArray[1] = 97
miArray[2] = 127

=============

var miArray = new Array(3)
miArray[0] = 155
miArray[1] = 4
miArray[2] = 499
for (i=0;i<3 i="" p="">
document.write("Posición " + i + " del array: " + miArray[i])
document.write("
")
}


Posición 0 del array: 155
Posición 1 del array: 4
Posición 2 del array: 499
=================


miArray[0] = "Hola"
miArray[1] = "a"
miArray[2] = "todos"



miArray[0] = "desarrolloweb.com"
miArray[1] = 1275
miArray[1] = 0.78
miArray[2] = true


=====================



Declaración e inicialización resumida de Arrays

En Javascript tenemos a nuestra disposición una manera resumida de declarar un array y
cargar valores en un mismo paso. Fijémonos en el código siguiente:


var arrayRapido = [12,45,"array inicializado en su declaración"]


=========  pag 71

var miArray = new Array()
miArray[0] = 155
miArray[1] = 499
miArray[2] = 65
document.write("Longitud del array: " + miArray.length)

===========

for (i=0;i
document.write(miArray[i])
}


==============  pag 74



var miArray = new Array(2)
miArray[0] = "Colombia"
miArray[1] = "Estados Unidos"
miArray[5] = "Brasil"
for (i=0;i
document.write("Posición " + i + " del array: " + miArray[i])
document.write("
")
}



========

Posición 0 del array: Colombia
Posición 1 del array: Estados Unidos
Posición 2 del array: undefined
Posición 3 del array: undefined
Posición 4 del array: undefined
Posición 5 del array: Brasil


=================

En este ejemplo vamos a crear un array de dos dimensiones donde tendremos por un lado
ciudades y por el otro la temperatura media que hace en cada una durante de los meses de
invierno.


var temperaturas_medias_ciudad0 = new Array(3)
temperaturas_medias_ciudad0[0] = 12
temperaturas_medias_ciudad0[1] = 10
temperaturas_medias_ciudad0[2] = 11
var temperaturas_medias_ciudad1 = new Array (3)
temperaturas_medias_ciudad1[0] = 5
temperaturas_medias_ciudad1[1] = 0
temperaturas_medias_ciudad1[2] = 2
var temperaturas_medias_ciudad2 = new Array (3)
temperaturas_medias_ciudad2[0] = 10
temperaturas_medias_ciudad2[1] = 8
temperaturas_medias_ciudad2[2] = 10


==========

Ahora crearemos un nuevo array de tres elementos e introduciremos
dentro de cada una de sus casillas los arrays creados anteriormente, con lo que tendremos un
array de arrays, es decir, un array de 2 dimensiones.

var temperaturas_cuidades = new Array (3)
temperaturas_cuidades[0] = temperaturas_medias_ciudad0
temperaturas_cuidades[1] = temperaturas_medias_ciudad1
temperaturas_cuidades[2] = temperaturas_medias_ciudad2


=============   pagina  71   array  tridimensionales



document.write("
");
for (i=0;i
document.write(" ")
document.write("
Ciudad " + i + "
")
for (j=0;j
document.write("
" + temperaturas_cuidades[i][j] + "
")
}
document.write("





")
}
document.write("
")


===========  resultado

Ciudad 0 12 10 11
Ciudad 1 5 0 2
Ciudad 2 10 8 10




===============  Inicialización de arrays   pag 76



var diasSemana = new Array("Lunes","Martes","Miércoles,","Jueves","Viernes","Sábado","Domingo")


var temperaturas_cuidades = new Array(new Array (12,10,11), new Array(5,0,2),new Array(10,8,10))

==========


var arrayMuchasDimensiones = [1, ["hola", "que", "tal", ["estas", "estamos", "estoy"], ["bien", "mal"], "acabo"], 2, 5];


alert (arrayMuchasDimensiones[0])
alert (arrayMuchasDimensiones[1][2])
alert (arrayMuchasDimensiones[1][3][1])

========  Objetos en Javascript  pag  79

Propiedades: En los objetos las propiedades se refieren a los datos
Métodos: En objetos, los métodos se refieren a la funcionalidad

miObjeto.miPropiedad


miObjeto.miMetodo(parametro1,parametro2)

miObjeto.miMetodo()


La otra alternativa para crear objetos en Javascript es por medio de literales de objeto, que no
son más que la definición del objeto por medio de código encerrado entre llaves, indicando sus
propiedades o métodos tal cual.

{
nombre: 'Miguel Angel Alvarez',
sitioWeb: 'DesarrolloWeb.com'
}


Esta simple función podríamos usarla como molde para construir objetos de la clase Persona:

function Persona(nombre) {
this.nombre = nombre;
}


==========  definicion segun  versiones  pagina  83

Observarás que estamos usando dentro la palabra "this". Esa palabra es una referencia al
objeto que se va a crear con esta función. En javascript para crear un objeto a partir de una
función se utiliza la instrucción new, de esta manera.


var miguel = new Persona('Miguel Angel Alvarez');



var x = "hola";

y +=5;



var dimensiones = {
altura: 34,
anchura: 455
}

====  metodos

var dimensiones = {
altura: 34,
anchura: 455,
area: function(){
return this.altura * this.anchura;
}
}



var dimensiones = {
altura: 34,
anchura: 455,
area: function(){
return this.altura * this.anchura;
}
}

dimensiones.altura = 90 //accede a la propiedad altura y le asigna el valor 90


======  ¿Esto no es JSON?   pagina  85


var coche = {
color: "rojo",
marca: "Opel"
}

coche.anoFabricacion = 2014;

coche.arrancar = function(){
alert("rum rum");
}

console.log(coche.color);
console.log(coche.anoFabricacion);
coche.arrancar();

==========================   pag  86

var miObjeto = {
propiedad1: "Algo",
propiedad2: "Otra cosa",
propiedad3: true,
propiedad4: 344,
metodo1: function(){
alert("Ejecutaste metodo1");
},
metodo2: funcionMetodo2
}
function funcionMetodo2(){
//puedo usar la variable this para acceder a mis propias propiedades o métodos
this.propiedad2 = "Esto lo he modificado desde el método metodo2";
}
//Veamos el valor de esas propiedades
console.log(miObjeto.propiedad1);
console.log(miObjeto.propiedad2);
//ejecutemos algún método
miObjeto.metodo1();
miObjeto.metodo2();
//creamos nuevas propiedades
miObjeto.otraPropiedad = "Esto está creado a posteriori";
//creamos nuevos métodos
miObjeto.otroMetodo = function(){
console.log("ejecutaste otro método");
}
//veamos el contenido de todo el objeto
console.log(miObjeto);

======================  pag 88


for (var propiedad in objeto){
// código a repetir por el bucle.
// dentro de este código la variable "propiedad" contiene la propiedad actual
// actual en cada uno de los pasos de la iteración.
}


Tenemos un objeto creado a partir de un literal de objeto.

var diasMes = {
enero: 31,
febrero: 28,
marzo: 31,
abril: 30,
mayo: 31
}


Pues para acceder a las propiedades de ese objeto (en este caso sería para acceder a los
nombres de cada uno de los meses) usarías este bucle.

for (var mes in diasMes){
console.log(mes);
}

Con esto conseguirás en la consola que aparezcan todos los nombres de los meses del año que
tenemos en ese objeto diasMes.

alert(diasMes["mayo"]);

for (var mes in diasMes){
console.log(diasMes[mes]);
}




for (var mes in diasMes){
console.log("El mes " + mes + " tiene " + diasMes[mes] + " dias.");
}



======================  pag 90



{
"Miguel Angel Alvarez" : {
"isFav" : true
},
"DesarrolloWeb.com" : {
"isFav" : false
},
"EscuelaIT" : {
"isFav" : true
},
}

===============


Ahora puedes ver el bucle for in Javascript, con el que realizamos el recorrido, comprobando
para cada uno de los objetos de la colección si es favorito.

for(var usuario in usuarios) {
if(usuarios[usuario].isFav) {
console.log('El usuario con índice (usamos su nombre como índice) ' + usuario + ' es uno de tus favoritos');
}
}


===========


function MiClase (valor_inicializacion){
//Inicializo las propiedades y métodos
this.miPropiedad = valor_inicializacion
this.miMetodo = nombre_de_una_funcion_definida
}

===  pagina  92


function AlumnoUniversitario(nombre, edad){
this.nombre = nombre
this.edad = edad
this.numMatricula = null
}


function matriculate(num_matricula){
this.numMatricula = num_matricula
}

function imprimete(){
document.write("Nombre: " + this.nombre)
document.write("
Edad: " + this.edad)
document.write("
Número de matrícula: " + this.numMatricula)
}


function AlumnoUniversitario(nombre, edad){
this.nombre = nombre
this.edad = edad
this.numMatricula = null
this.matriculate = matriculate
this.imprimete = imprimete
}


miAlumno = new AlumnoUniversitario("José Díaz",23)

===============



//definimos el método matricularte para la clase AlumnoUniversitario
function matriculate(num_matricula){
this.numMatricula = num_matricula
}
//definimos el método imprimete para la clase AlumnoUniversitario
function imprimete(){
document.write("
Nombre: " + this.nombre)
document.write("
Edad: " + this.edad)
document.write("
Número de matrícula: " + this.numMatricula)
}
//definimos el constructor para la clase
function AlumnoUniversitario(nombre, edad){
this.nombre = nombre
this.edad = edad
this.numMatricula = null
this.matriculate = matriculate
this.imprimete = imprimete
}
//creamos un alumno
miAlumno = new AlumnoUniversitario("José Díaz",23)
//le pedimos que se imprima
miAlumno.imprimete()
//le pedimos que se matricule
miAlumno.matriculate(305)
//le pedimos que se imprima de nuevo (con el número de matricula relleno)
miAlumno.imprimete()

resultado

Creación de una clase y su utilización



Nombre: José Díaz
Edad: 23
Número de matrícula: null
Nombre: José Díaz
Edad: 23
Número de matrícula: 305





=======   Objetos incorporados en Javascript    pag  94

Las clases que se encuentran disponibles de manera nativa en Javascript, y que vamos a ver a
continuación, son las siguientes:
String, para el trabajo con cadenas de caracteres.
Date, para el trabajo con fechas.
Math, para realizar funciones matemáticas.
Number, para realizar algunas cosas con números
Boolean, trabajo con boleanos.


========   Ejemplos de funcionamiento de los objetos de clase String   pag  99


Ejemplo de strings 1
Vamos a escribir el contenido de un string con un carácter separador ("-") entre cada uno de
los caracteres del string.

var miString = "Hola Amigos"
var result = ""
for (i=0;i
result += miString.charAt(i)
result += "-"
}
result += miString.charAt(miString.length - 1)
document.write(result)


resultado

H-o-l-a- -A-m-i-g-o-s


Ejemplo de strings 2
Vamos a hacer un script que rompa un string en dos mitades y las imprima por pantalla. Las
mitades serán iguales, siempre que el string tenga un número de caracteres par. En caso de que
el número de caracteres sea impar no se podrá hacer la mitad exacta, pero partiremos el string
lo más aproximado a la mitad.

var miString = "0123456789"
var mitad1,mitad2
posicion_mitad = miString.length / 2
mitad1 = miString.substring(0,posicion_mitad)
mitad2 = miString.substring(posicion_mitad,miString.length)
document.write(mitad1 + "
" + mitad2)


resultado

01234
56789


Clase Date en Javascript =======

miFecha = new Date()


miFecha = new Date(año,mes,dia,hora,minutos,segundos)
miFecha = new Date(año,mes,dia)
============================================   pagina  103


//en estas líneas creamos las fechas
miFechaActual = new Date()
miFechaPasada = new Date(1998,4,23)
//en estas líneas imprimimos las fechas.
document.write (miFechaActual)
document.write ("
")
document.write (miFechaPasada)
//extraemos el año de las dos fechas
anoActual = miFechaActual.getFullYear()
anoPasado = miFechaPasada.getFullYear()
//Escribimos en año en la página
document.write("
El año actual es: " + anoActual)
document.write("
El año pasado es: " + anoPasado)
//cambiamos el año en la fecha actual
miFechaActual.setFullYear(2005)
//extraemos el día mes y año
dia = miFechaActual.getDate()
mes = parseInt(miFechaActual.getMonth()) + 1
ano = miFechaActual.getFullYear()
//escribimos la fecha en un formato legible
document.write ("
")
document.write (dia + "/" + mes + "/" + ano)

REsultado

Fri Aug 31 2018 22:37:49 GMT-0500 (hora estándar de Perú)
Sat May 23 1998 00:00:00 GMT-0500 (hora estándar de Perú)
El año actual es: 2018
El año pasado es: 1998
31/8/2005


Propiedades de Math  =====   104

Ejemplo de utilización de la clase Math
Vamos a ver un sencillo ejemplo sobre cómo utilizar métodos y propiedaes de la clase Math
para calcular el seno y el coseno de 2 PI radianes (una vuelta completa). Como algunos de
vosotros sabréis, el coseno de 2 PI radianes debe dar como resultado 1 y el seno 0.

document.write (Math.cos(2 * Math.PI))
document.write ("
")
document.write (Math.sin(2 * Math.PI))

1
-2.4492935982947064e-16


==========  Clase Number en Javascript    108


Su funcionamiento se puede resumir en estos ejemplos.

var n1 = new Number()
document.write(n1 + "
")
//muestra un 0
var n2 = new Number("hola")
document.write(n2 + "
")
//muestra NaN
var n3 = new Number("123")
document.write(n3 + "
")
//muestra 123
var n4 = new Number("123asdfQWERTY")
document.write(n4 + "
")
//muestra NaN
var n5 = new Number(123456)
document.write(n5 + "
")
//muestra 123456
var n6 = new Number(false)
document.write(n6 + "
")
//muestra 0
var n7 = new Number(true)
document.write(n7 + "
")
//muestra 1


resultado

0
NaN
123
NaN
123456
0
1


Propiedad NaN: NaN
Propiedad MAX_VALUE: 1.7976931348623157e+308
Propiedad MIN_VALUE: 5e-324
Propiedad NEGATIVE_INFINITY: -Infinity
Propiedad POSITIVE_INFINITY: Infinity


Clase Boolean en Javascript ==============   109


Se puede comprender el funcionamiento de este objeto fácilmente si examinamos unos
ejemplos.

var b1 = new Boolean()
document.write(b1 + "
")
//muestra false
var b2 = new Boolean("")
document.write(b2 + "
")
//muestra false
var b25 = new Boolean(false)
document.write(b25 + "
")
//muestra false
var b3 = new Boolean(0)
document.write(b3 + "
")
//muestra false
var b35 = new Boolean("0")
document.write(b35 + "
")
//muestra true
var b4 = new Boolean(3)
document.write(b4 + "
")
//muestra true
var b5 = new Boolean("Hola")
document.write(b5 + "
")
//muestra true



Ejemplos con Boolean
false
false
false
false
true
true
true


======================  seguimiento de errores   pag  116



Con la función alert() podemos mostrar en cualquier momento el contenido de las variables
que estamos utilizando en nuestros scripts. Para ello ponemos entre paréntesis la variable que
deseamos ver su contenido. Cuando se muestra el contenido de la variable el navegador espera
a que apretemos el botón de aceptar y cuando lo hacemos continúa con las siguientes
instrucciones del script.
Este es un sencillo ejemplo sobre cómo se puede utilizar la función alert() para mostrar el
contenido de las variables.

var n_actual = 0
var suma = 0
while (suma<300 p="">
n_actual ++
suma += suma + n_actual
alert("n_actual vale " + n_actual + " y suma vale " + suma)
}



Los foros estan llenos de peticiones de información sobre Ajax, DOM y como se usan algunas
librerías o efectos. Hay una extraordinaria cantidad de información, scripts, librerías que estan
siendo desarrollados, blogs y nuevos sitios especializados en esta temática, sólo necesitas un
poco de tiempo y echarle un vistazo... es muy fácil los mejores los encuentras en Digg.com o en
del.icio.us, se acabaron aquellos días en el que Javascript y el DHTML se convirtieron en
persona non grata como habilidad principal en tu CV.

==========   pag 117

Conserva la sintaxis y estructura de tu código limpia y ordenada
Esto significa que guardes por ejemplo un límite de longitud de línea (80 caracteres) y que
programes funciones razonablemente pequeñas. Un fallo es pensar que en una función larga lo
podemos hacer todo.
Tener un tamaño razonable para tus funciones significa que las podrás reutilizar cuando
amplies el código, tampoco seas extremista y hagas funciones de una o dos líneas esto puede
llegar a ser más confuso que usar una única función.
Este es un ejemplo que muestra cual es la justa medida en cuanto al tamaño de las funciones y
la división de las tareas:

function toolLinks(){
var tools = document.createElement('ul');
var item = document.createElement('li');
var itemlink = document.createElement('a');
itemlink.setAttribute('href', '#');
itemlink.appendChild(document.createTextNode('close'));
itemlink.onclick = function(){window.close();}
item.appendChild(itemlink);
tools.appendChild(item);
var item2 = document.createElement('li');
var itemlink2 = document.createElement('a');
itemlink2.setAttribute('href', '#');
itemlink2.appendChild(document.createTextNode('print'));
itemlink2.onclick = function(){window.print();}
item2.appendChild(itemlink2);
tools.appendChild(item2);
document.body.appendChild(tools);
}
Puedes optimizar esta función separando cada tarea con su propia función:

function toolLinks(){
var tools = document.createElement('ul');
var item = document.createElement('li');
var itemlink = createLink('#', 'close', closeWindow);
item.appendChild(itemlink);
tools.appendChild(item);
var item2 = document.createElement('li');
var itemlink2 = createLink('#', 'print', printWindow);
item2.appendChild(itemlink2);
tools.appendChild(item2);
document.body.appendChild(tools);
}
function printWindow(){
window.print();
}
function closeWindow() {
window.close();
}
function createLink(url,text,func){
var temp = document.createElement('a');
temp.setAttribute('href', url);
temp.appendChild(document.createTextNode(text));
temp.onclick = func;
return temp;
}


Utiliza inteligentemente los nombres de variables y funciones
Esta es un técnica esencial de programación, utiliza nombres de variables y funciones que sean
totalmente descriptivos e incluso otra persona pueda llegar a plantearse que función realizan
antes de ver el código.
Recuerda que es correcto el uso de guiones o mayúsculas para concatenar diferentes palabras,
en este caso concreto de es más típico el uso de mayúsculas debido a la sintaxis del lenguaje,
(ej. getElementsByTagName()).

CambioFormatoFecha();
cambio_formato_fecha();

Comenta el código
Gracias a los comentarios puedes librarte de más de un quebradero de cabeza, es mejor
resolver el problema una única vez.
Cómo puedes comprobar en cualquier libro de programación cada línea tiene comentarios
explicando su objetivo.
Diferencia las variables dependiendo de su importancia
Este paso es simple: Coloca aquellas variables que son usadas durante todo el script en la
cabecera del código, de esta maneras siempre sabrás donde encontrar estas variables que son
las que determinan el resultado de nuestro código.

function toolLinks(){
var tools, closeWinItem, closeWinLink, printWinItem, printWinLink;
// variables temporales
var printLinkLabel = ?print?;
var closeLinkLabel = ?close?;#
tools = document.createElement(?ul?);
closeWinItem = document.createElement(?li?);
closeWinLink = createLink(?#', closeLinkLabel, closeWindow);
closeWinItem.appendChild(closeWinLink);
tools.appendChild(closeWinItem);
printWinItem = document.createElement(?li?);
printWinLink = createLink(?#', printLinkLabel, printWindow);
printWinItem.appendChild(printWinLink);
tools.appendChild(printWinItem);
document.body.appendChild(tools);
}

Separa el texto del código
Puedes separar el texto del código, utilizando un documento llamado texto.js en formato
JSON.
Un ejemplo que funciona muy bien podría ser:

var locales = {
'en': {
'homePageAnswerLink':'Answer a question now',
'homePageQuestionLink':'Ask a question now',
'contactHoverMessage':'Click to send this info as a message',
'loadingMessage' : 'Loading your data...',
'noQAmessage' : 'You have no Questions or Answers yet',
'questionsDefault': 'You have not asked any questions yet',
'answersDefault': 'You have not answered any questions yet.',
'questionHeading' : 'My Questions',
'answersHeading' : 'My Answers',
'seeAllAnswers' : 'See all your Answers',
'seeAllQuestions' : 'See all your Questions',
'refresh': 'refresh'
},
'es': {
'homePageAnswerLink':'Responde una pregunta',
'homePageQuestionLink':'Haz una pregunta',
'contactHove' : 'Cargando datos...',
'noQAmessage' : 'No quedan preguntas',
'questionsDefault': 'Quedan preguntas por responder',
'answersDefault': 'No quedan preguntas pendientes',
'questionHeading' : 'Mis preguntas',
'answersHeading' : 'Mis respuestas',
'seeAllAnswers' : 'Ver todas las respuestas',
'seeAllQuestions' : 'Ver todas las preguntas',
'refresh': 'Refrescar'
},
'fr': {
}
'de': {
}
};


Esto permitiría a cualquiera que no es programador traducir el texto del script, cambiando
unicamente las etiquetas sin necesidad de acceder al código.
Documenta el código
Escribe una buena documentacion de tu script / librería o efecto. Una buena documentación
da calidad al código, sino preguntate porque existe la clásica documentación en cualquier API
con todas las posibles propiedades y parametros, pero sin duda lo mejor de todo es explicar
con ejemplos que contienen una lista de posibilidades.


















































































 ============  ============  ============  ============ 
 ============  ============  ============  ============ 

javascript

 ============  ============  ============  ============ 
 ============  ============  ============  ============ 

esqueleto

Como se utiliza Java script








============================
*************************************
*************************************
programando en notepad ++
*************************************

Como se utiliza Java script


¿practica la multiplicacion?

Hola Antonio !!!


*************************************

*************************************
*************************************


Como se utiliza JavaScript


numero 1:

numero 2:








=============================
ventana google  ============   pag 12

..
Hola antonio !!!
==$0

https://desarrolloweb.com/articulos/ejemplos/javascript/abrir_vent_1.html

Mensaje =========


¿Ha salido el mensaje?


Fecha  ===========

¿Esta es la fecha actual?


Un poco raro ¿no?, pero ya aprenderemos a darle formato.


boton atraz ============   pag 13


ocultar codigo  =============  pag 17

-->

mensaje en antoguos navegadores ==========  pag 18



lenguaje version ============ pag 18


comentarios  =========


variables ===================  22

sumando1 = 23
sumando2 = 33
suma = sumando1 + sumando2

var operando1
var operando2

var operando1 = 23
var operando2 = 33

var operando1,operando2

varibles globales =========24

Variables locales
 ========  25


=========================== locales y globales




===============  diferencias entre variables  pag 26


==============  guardar en variable




var nombre_ciudad = "Valencia"      (cadenas)
var revisado = true                 (boleano)
nombre_ciudad = 32                   (numeros)
revisado = "no"                     (boleano)


====================   pag  28


var sumando1 = 23
var sumando2 = "33"
var suma = sumando1 + sumando2
document.write(suma)


imprime  2333   concatenacion no suma

==================   tipo boleano   pag 29

Base 10  decimal

Base 8   dígitos del 0 al 7

Base 16 o sistema hexadecimal  16 dígitos



miBoleana = true

miBoleana = false

=========cadena de caracteres  pag 29

miTexto = "Pepe se va a pescar"
miTexto = '23%%$ Letras & *--*'


caracteres de escape

Salto de línea: \n Comilla simple: \' Comilla doble: \" Tabulador: \t Retorno de carro: \r
Avance de página: \f Retroceder espacio: \b Contrabarra: \




============  operadores  pag  31


miVariable = 23 * 5


============  operadores de asignacion   pag 32

precio = 128 //introduzco un 128 en la variable precio
unidades = 10 //otra asignación, luego veremos operadores de asignación
factura = precio * unidades //multiplico precio por unidades, obtengo el valor factura
resto = factura % 3 //obtengo el resto de dividir la variable factura por 3
precio++ //incrementa en una unidad el precio (ahora vale 129)



ahorros = 7000 //asigna un 7000 a la variable ahorros
ahorros += 3500 //incrementa en 3500 la variable ahorros, ahora vale 10500
ahorros /= 2 //divide entre 2 mis ahorros, ahora quedan 5250



================   Operadores de cadenas  pag 33

cadena1 = "hola"
cadena2 = "mundo"
cadenaConcatenada = cadena1 + cadena2 //cadena concatenada vale "holamundo"



miNumero = 23
miCadena1 = "pepe"
miCadena2 = "456"
resultado1 = miNumero + miCadena1 //resultado1 vale "23pepe"
resultado2 = miNumero + miCadena2 //resultado2 vale "23456"
miCadena2 += miNumero //miCadena2 ahora vale "45623"

operadores logicos  =======  35

! Operador NO o negación. Si era true pasa a false y viceversa. && Operador Y, si son los dos
verdaderos vale verdadero. || Operador O, vale verdadero si por lo menos uno de ellos es
verdadero.




miBoleano = true
miBoleano = !miBoleano //miBoleano ahora vale false
tengoHambre = true
tengoComida = true
comoComida = tengoHambre && tengoComida


Operadores condicionales
 ========   35

Comprueba si dos valores son iguales != Comprueba si dos valores son distintos

Mayor que, devuelve true si el primer operando es mayor que el segundo < Menor que, es
true cuando el elemento de la izquierda es menor que el de la derecha = Mayor igual <=
Menor igual



ejemplos   pag  36 ==========


12 * 3 + 4 - 8 / 2 % 3


En este caso primero se ejecutan los operadores * / y %, de izquierda a derecha, con lo que se
realizarían estas operaciones. Primero la multiplicación y luego la división por estar más a la
izquierda del módulo.


36 + 4 - 4 % 3
36 + 4 - 1
40 - 1
39  



Control de tipos =============  pag 38




var boleano = true
var numerico = 22
var numerico_flotante = 13.56
var texto = "mi texto"
var fecha = new Date()
document.write("
El tipo de boleano es: " + typeof boleano)
document.write("
El tipo de numerico es: " + typeof numerico)
document.write("
El tipo de numerico_flotante es: " + typeof numerico_flotante)
document.write("
El tipo de texto es: " + typeof texto)
document.write("
El tipo de fecha es: " + typeof fecha)




boolean, para los datos boleanos. (True o false)
number, para los numéricos.
string, para las cadenas de caracteres.
object, para los objetos.



bucles  pag 41 =================================  estructuras de ctrl
IF
SWITCH



bucle

FOR
WHILE
DO WHILE





if (expresión) {
//acciones a realizar en caso positivo

//...
}




if (expresión) {
//acciones a realizar en caso positivo
//...
} else {
//acciones a realizar en caso negativo
//...
}


=============================  if   pag 41


if (llueve)
alert("Cae agua");

Sería exactamente igual que este código:

if (llueve){
alert("Cae agua");
}


O incluso, igual a este otro:


if (llueve) alert("Cae agua");

=======================   condicional


if (dia == "lunes")
document.write ("Que tengas un feliz comienzo de semana")


==========   pag  42


if (credito >= precio) {
document.write("has comprado el artículo " + nuevoArtículo) //enseño compra
carrito += nuevoArticulo //introduzco el artículo en el carrito de la compra
credito -= precio //disminuyo el crédito según el precio del artículo
} else {
document.write("se te ha acabado el crédito") //informo que te falta dinero
window.location = "carritodelacompra.html" //voy a la página del carrito
}


============


if (edad > 18)
document.write("puedes ver esta página para adultos")

==========


if (bateria < 0.5 && redElectrica == 0)
document.write("tu ordenador portatil se va a apagar en segundos")


=========  pag 44

var numero1=23
var numero2=63
if (numero1 == numero2){
document.write("Los dos números son iguales")
}else{
if (numero1 > numero2) {
document.write("El primer número es mayor que el segundo")
}else{
document.write("El primer número es menor que el segundo")
}
}


oerador if =======  pag 45

Variable = (condición) ? valor1 : valor2

ejemplo

momento = (hora_actual < 12) ? "Antes del mediodía" : "Después del mediodía"



==========  SWITCH  ===========  pag 46



switch (expresión) {
case valor1:
Sentencias a ejecutar si la expresión tiene como valor a valor1
break
case valor2:
Sentencias a ejecutar si la expresión tiene como valor a valor2
break
case valor3:
Sentencias a ejecutar si la expresión tiene como valor a valor3
break
default:
Sentencias a ejecutar si el valor no es ninguno de los anteriores
}


ejemplo


switch (dia_de_la_semana) {
case 1:
document.write("Es Lunes")
break
case 2:
document.write("Es Martes")
break
case 3:
document.write("Es Miércoles")
break
case 4:
document.write("Es Jueves")
break
case 5:
document.write("Es viernes")
break
case 6:
case 7:
document.write("Es fin de semana")
break
default:
document.write("Ese día no existe")
}


FOR =================  pag  47


for (inicialización; condición; actualización) {
//sentencias a ejecutar en cada iteración
}



ejemplo   0,1,2,3,4... 10

var i
for (i=0;i<=10;i++) {
document.write(i)
document.write("
")
}


===============

Por ejemplo si queremos escribir los número del 1 al 1.000 de dos en dos se escribirá el
siguiente bucle.

for (i=1;i<=1000;i+=2)
document.write(i)

===============


if (x==2 && y!=3){
//la variable x vale 2 y la variable y es distinta de tres
}

=============================




Si queremos contar descendentemente del 343 al 10 utilizaríamos este bucle.
for (i=343;i>=10;i--)
document.write(i)

===========  ejemplo bucle for  49

Lo que deseamos escribir en una página web mediante Javascript es lo siguiente:

Encabezado de nivel 1

Encabezado de nivel 2

Encabezado de nivel 3

Encabezado de nivel 4

Encabezado de nivel 5
Encabezado de nivel 6

Para ello tenemos que hacer un bucle que empiece en 1 y termine en 6 y en cada iteración
escribiremos el encabezado que toca.

for (i=1;i<=6;i++) {
document.write("Encabezado de nivel " + i + "")
}




Encabezado de nivel 1
Encabezado de nivel 2
Encabezado de nivel 3
Encabezado de nivel 4
Encabezado de nivel 5
Encabezado de nivel 6

===========  Bucle WHILE

while (condición){
//sentencias a ejecutar
}

Un ejemplo de código donde se utiliza este bucle se puede ver a continuación.


var color = ""
while (color != "rojo"){
color = prompt("dame un color (escribe rojo para salir)","")
}



se repite hasta se ingrese como color el texto "rojo".


=============  Bucle DO...WHILE  pagina 51


do {
//sentencias del bucle
} while (condición)


El bucle se ejecuta siempre una vez y al final se evalúa la condición para decir si se ejecuta otra
vez el bucle o se termina su ejecución.
Veamos el ejemplo que escribimos para un bucle WHILE en este otro tipo de bucle.


var color
do {
color = prompt("dame un color (escribe rojo para salir)","")
} while (color != "rojo")



ejemplo


var suma = 0
while (suma < 1000){
suma += parseInt(Math.random() * 100)
document.write (suma + "
")
}

=================  pag 53


break: Significa detener la ejecución de un bucle y salirse de él.
continue: Sirve para detener la iteración actual y volver al principio del bucle para
realizar otra iteración, si corresponde.


for (i=0;i<10 i="" p="">
document.write (i)
escribe = prompt("dime si continuo preguntando...", "si")
if (escribe == "no")
break
}


==================

var i=0
while (i<7 p="">
incrementar = prompt("La cuenta está en " + i + ", dime si incremento", "si")
if (incrementar == "no")
continue
i++
}

=========

for (i=0;i<=1000;i++){
document.write(i + "
")
if (i==333)
break;
}


===========  bucles anidados

for (i=0;i<10 i="" p="">
for (j=0;j<10 j="" p="">
document.write(i + "-" + j)
}
}

===========   pagina 55

Veamos un ejemplo muy parecido al anterior, aunque un poco más útil. Se trata de imprimir
en la página las todas las tablas de multiplicar. Del 1 al 9, es decir, la tabla del 1, la del 2, del 3...

Con el primer bucle controlamos la tabla actual y con el segundo bucle la desarrollamos. En el
primer bucle escribimos una cabecera, en negrita, indicando la tabla que estamos escribiendo,
primero la del 1 y luego las demás en orden ascendente hasta el 9. Con el segundo bucle escribo
cada uno de los valores de cada tabla. 

for (i=1;i<10 i="" p="">
document.write("
La tabla del " + i + ":
")
for (j=1;j<10 j="" p="">
document.write(i + " x " + j + ": ")
document.write(i*j)
document.write("
")
}
}


Tablas de multiplicar

La tabla del 1:
1 x 1: 1
1 x 2: 2
1 x 3: 3
1 x 4: 4
1 x 5: 5
1 x 6: 6
1 x 7: 7
1 x 8: 8
1 x 9: 9

La tabla del 2:
2 x 1: 2
2 x 2: 4
2 x 3: 6
2 x 4: 8
2 x 5: 10
2 x 6: 12
2 x 7: 14
2 x 8: 16
2 x 9: 18

La tabla del 3:
3 x 1: 3
3 x 2: 6
3 x 3: 9
3 x 4: 12
3 x 5: 15
3 x 6: 18
3 x 7: 21
3 x 8: 24
3 x 9: 27

La tabla del 4:
4 x 1: 4
4 x 2: 8
4 x 3: 12
4 x 4: 16
4 x 5: 20
4 x 6: 24
4 x 7: 28
4 x 8: 32
4 x 9: 36

La tabla del 5:
5 x 1: 5
5 x 2: 10
5 x 3: 15
5 x 4: 20
5 x 5: 25
5 x 6: 30
5 x 7: 35
5 x 8: 40
5 x 9: 45

La tabla del 6:
6 x 1: 6
6 x 2: 12
6 x 3: 18
6 x 4: 24
6 x 5: 30
6 x 6: 36
6 x 7: 42
6 x 8: 48
6 x 9: 54

La tabla del 7:
7 x 1: 7
7 x 2: 14
7 x 3: 21
7 x 4: 28
7 x 5: 35
7 x 6: 42
7 x 7: 49
7 x 8: 56
7 x 9: 63

La tabla del 8:
8 x 1: 8
8 x 2: 16
8 x 3: 24
8 x 4: 32
8 x 5: 40
8 x 6: 48
8 x 7: 56
8 x 8: 64
8 x 9: 72

La tabla del 9:
9 x 1: 9
9 x 2: 18
9 x 3: 27
9 x 4: 36
9 x 5: 45
9 x 6: 54
9 x 7: 63
9 x 8: 72
9 x 9: 81


*************************************
*************************************
programando en notepad ++
*************************************

Como se utiliza Java script


¿practica la multiplicacion?







Hola Antonio !!!


*************************************

*************************************
*************************************

=========== funciones =====================  pag 57

function nombrefuncion (){
instrucciones de la función
...
}


function escribirBienvenida(){
document.write("

Hola a todos

")
}


Para ejecutar la función utilizamos su nombre seguido de los paréntesis. Por ejemplo, así
llamaríamos a la función escribirBienvenida() que acabamos de crear.

escribirBienvenida()

Colocar la función en el mismo bloque de script




Colocar la función en otro bloque de script:



MI PÁGINA

========= Parámetros pag  60

function escribirBienvenida(nombre){
document.write("

Hola " + nombre + "

")
}

escribirBienvenida("Alberto García")


function escribirBienvenida(nombre,colorTexto){
document.write("")
document.write("

Hola " + nombre + "

")
document.write("
")
}


Llamaríamos a la función con esta sintaxis. Entre los paréntesis colocaremos los valores de los
parámetros.


var miNombre = "Pepe"
var miColor = "red"
escribirBienvenida(miNombre,miColor)

Los parámetros se pasan por valor
 ==========  pag 61


function pasoPorValor(miParametro){
miParametro = 32
document.write("he cambiado el valor a 32")
}
var miVariable = 5
pasoPorValor(miVariable)
document.write ("el valor de la variable es: " + miVariable)


=============  p  62

function media(valor1,valor2){
var resultado
resultado = (valor1 + valor2) / 2
return resultado
}

Para especificar el valor que retornará la función se utiliza la palabra return seguida de el
valor que se desea devolver. En este caso se devuelve el contenido de la variable resultado, que
contiene la media calculada de los dos números.



Para ilustrar esto se puede ver este ejemplo, que llamará a la función media() y guardará el
resultado de la media en una variable para luego imprimirla en la página.


var miMedia
miMedia = media(12,8)
document.write (miMedia)


=========   multipleReturn   pag 64

function multipleReturn(numero){
var resto = numero % 2
if (resto == 0)
return 0
else
return numero
}

=====

function variables_glogales_y_locales(){
var variableLocal = 23
variableGlobal = "qwerty"
}


=========================   pag  65


Funciones incorporadas en Javascript
Estas son las funciones que Javascript pone a disposición de los programadores.

eval(string)

Esta función recibe una cadena de caracteres y la ejecuta como si fuera una sentencia de
Javascript.

parseInt(cadena,base)

Recibe una cadena y una base. Devuelve un valor numérico resultante de convertir la cadena
en un número en la base indicada.
parseFloat(cadena)

Convierte la cadena en un número y lo devuelve.
escape(carácter)

Devuelve un el carácter que recibe por parámetro en una codificación ISO Latin 1.
unescape(carácter)
Hace exatamente lo opuesto a la función escape.
isNaN(número)
Devuelve un boleano dependiendo de lo que recibe por parámetro. Si no es un número
devuelve un true, si es un numero devuelve false.


==================   pag 66

var miTexto = "3 + 5"
eval("document.write(" + miTexto +")")

resultado :
document.write(3 + 5)



document.write (parseInt("34"))
Devuelve el numero 34


document.write (parseInt("101011",2))
Devuelve el numero 43


document.write (parseInt("34",8))
Devuelve el numero 28


document.write (parseInt("3F",16))
Devuelve el numero 63


document.write (parseInt("3.38"))
Devuelve el numero 3


document.write (parseInt("desarrolloweb.com"))


Devuelve el numero NaN
 (Not a Number)


document.write (parseInt("16XX3U"))
Devuelve el numero 16


document.write (parseInt("TG45"))
Devuelve el numero NaN

=======

miInteger = parseInt("A3.6")
isNaN(miInteger)

true

miFloat = parseFloat("4.7")
isNaN(miFloat)



false


============== Array  pag  70


var miArray = new Array()

var miArray = new Array(10)

En este caso indicamos que el array va a tener 10 posiciones, es decir, 10 casillas donde
guardar datos.

miArray[0] = 290
miArray[1] = 97
miArray[2] = 127

=============

var miArray = new Array(3)
miArray[0] = 155
miArray[1] = 4
miArray[2] = 499
for (i=0;i<3 i="" p="">
document.write("Posición " + i + " del array: " + miArray[i])
document.write("
")
}


Posición 0 del array: 155
Posición 1 del array: 4
Posición 2 del array: 499
=================


miArray[0] = "Hola"
miArray[1] = "a"
miArray[2] = "todos"



miArray[0] = "desarrolloweb.com"
miArray[1] = 1275
miArray[1] = 0.78
miArray[2] = true


=====================



Declaración e inicialización resumida de Arrays

En Javascript tenemos a nuestra disposición una manera resumida de declarar un array y
cargar valores en un mismo paso. Fijémonos en el código siguiente:


var arrayRapido = [12,45,"array inicializado en su declaración"]


=========  pag 71

var miArray = new Array()
miArray[0] = 155
miArray[1] = 499
miArray[2] = 65
document.write("Longitud del array: " + miArray.length)

===========

for (i=0;i
document.write(miArray[i])
}


==============  pag 74



var miArray = new Array(2)
miArray[0] = "Colombia"
miArray[1] = "Estados Unidos"
miArray[5] = "Brasil"
for (i=0;i
document.write("Posición " + i + " del array: " + miArray[i])
document.write("
")
}



========

Posición 0 del array: Colombia
Posición 1 del array: Estados Unidos
Posición 2 del array: undefined
Posición 3 del array: undefined
Posición 4 del array: undefined
Posición 5 del array: Brasil


=================

En este ejemplo vamos a crear un array de dos dimensiones donde tendremos por un lado
ciudades y por el otro la temperatura media que hace en cada una durante de los meses de
invierno.


var temperaturas_medias_ciudad0 = new Array(3)
temperaturas_medias_ciudad0[0] = 12
temperaturas_medias_ciudad0[1] = 10
temperaturas_medias_ciudad0[2] = 11
var temperaturas_medias_ciudad1 = new Array (3)
temperaturas_medias_ciudad1[0] = 5
temperaturas_medias_ciudad1[1] = 0
temperaturas_medias_ciudad1[2] = 2
var temperaturas_medias_ciudad2 = new Array (3)
temperaturas_medias_ciudad2[0] = 10
temperaturas_medias_ciudad2[1] = 8
temperaturas_medias_ciudad2[2] = 10


==========

Ahora crearemos un nuevo array de tres elementos e introduciremos
dentro de cada una de sus casillas los arrays creados anteriormente, con lo que tendremos un
array de arrays, es decir, un array de 2 dimensiones.

var temperaturas_cuidades = new Array (3)
temperaturas_cuidades[0] = temperaturas_medias_ciudad0
temperaturas_cuidades[1] = temperaturas_medias_ciudad1
temperaturas_cuidades[2] = temperaturas_medias_ciudad2


=============   pagina  71   array  tridimensionales



document.write("
");
for (i=0;i
document.write(" ")
document.write("
Ciudad " + i + "
")
for (j=0;j
document.write("
" + temperaturas_cuidades[i][j] + "
")
}
document.write("





")
}
document.write("
")


===========  resultado

Ciudad 0 12 10 11
Ciudad 1 5 0 2
Ciudad 2 10 8 10




===============  Inicialización de arrays   pag 76



var diasSemana = new Array("Lunes","Martes","Miércoles,","Jueves","Viernes","Sábado","Domingo")


var temperaturas_cuidades = new Array(new Array (12,10,11), new Array(5,0,2),new Array(10,8,10))

==========


var arrayMuchasDimensiones = [1, ["hola", "que", "tal", ["estas", "estamos", "estoy"], ["bien", "mal"], "acabo"], 2, 5];


alert (arrayMuchasDimensiones[0])
alert (arrayMuchasDimensiones[1][2])
alert (arrayMuchasDimensiones[1][3][1])

========  Objetos en Javascript  pag  79

Propiedades: En los objetos las propiedades se refieren a los datos
Métodos: En objetos, los métodos se refieren a la funcionalidad

miObjeto.miPropiedad


miObjeto.miMetodo(parametro1,parametro2)

miObjeto.miMetodo()


La otra alternativa para crear objetos en Javascript es por medio de literales de objeto, que no
son más que la definición del objeto por medio de código encerrado entre llaves, indicando sus
propiedades o métodos tal cual.

{
nombre: 'Miguel Angel Alvarez',
sitioWeb: 'DesarrolloWeb.com'
}


Esta simple función podríamos usarla como molde para construir objetos de la clase Persona:

function Persona(nombre) {
this.nombre = nombre;
}


==========  definicion segun  versiones  pagina  83

Observarás que estamos usando dentro la palabra "this". Esa palabra es una referencia al
objeto que se va a crear con esta función. En javascript para crear un objeto a partir de una
función se utiliza la instrucción new, de esta manera.


var miguel = new Persona('Miguel Angel Alvarez');



var x = "hola";

y +=5;



var dimensiones = {
altura: 34,
anchura: 455
}

====  metodos

var dimensiones = {
altura: 34,
anchura: 455,
area: function(){
return this.altura * this.anchura;
}
}



var dimensiones = {
altura: 34,
anchura: 455,
area: function(){
return this.altura * this.anchura;
}
}

dimensiones.altura = 90 //accede a la propiedad altura y le asigna el valor 90


======  ¿Esto no es JSON?   pagina  85


var coche = {
color: "rojo",
marca: "Opel"
}

coche.anoFabricacion = 2014;

coche.arrancar = function(){
alert("rum rum");
}

console.log(coche.color);
console.log(coche.anoFabricacion);
coche.arrancar();

==========================   pag  86

var miObjeto = {
propiedad1: "Algo",
propiedad2: "Otra cosa",
propiedad3: true,
propiedad4: 344,
metodo1: function(){
alert("Ejecutaste metodo1");
},
metodo2: funcionMetodo2
}
function funcionMetodo2(){
//puedo usar la variable this para acceder a mis propias propiedades o métodos
this.propiedad2 = "Esto lo he modificado desde el método metodo2";
}
//Veamos el valor de esas propiedades
console.log(miObjeto.propiedad1);
console.log(miObjeto.propiedad2);
//ejecutemos algún método
miObjeto.metodo1();
miObjeto.metodo2();
//creamos nuevas propiedades
miObjeto.otraPropiedad = "Esto está creado a posteriori";
//creamos nuevos métodos
miObjeto.otroMetodo = function(){
console.log("ejecutaste otro método");
}
//veamos el contenido de todo el objeto
console.log(miObjeto);

======================  pag 88


for (var propiedad in objeto){
// código a repetir por el bucle.
// dentro de este código la variable "propiedad" contiene la propiedad actual
// actual en cada uno de los pasos de la iteración.
}


Tenemos un objeto creado a partir de un literal de objeto.

var diasMes = {
enero: 31,
febrero: 28,
marzo: 31,
abril: 30,
mayo: 31
}


Pues para acceder a las propiedades de ese objeto (en este caso sería para acceder a los
nombres de cada uno de los meses) usarías este bucle.

for (var mes in diasMes){
console.log(mes);
}

Con esto conseguirás en la consola que aparezcan todos los nombres de los meses del año que
tenemos en ese objeto diasMes.

alert(diasMes["mayo"]);

for (var mes in diasMes){
console.log(diasMes[mes]);
}




for (var mes in diasMes){
console.log("El mes " + mes + " tiene " + diasMes[mes] + " dias.");
}



======================  pag 90



{
"Miguel Angel Alvarez" : {
"isFav" : true
},
"DesarrolloWeb.com" : {
"isFav" : false
},
"EscuelaIT" : {
"isFav" : true
},
}

===============


Ahora puedes ver el bucle for in Javascript, con el que realizamos el recorrido, comprobando
para cada uno de los objetos de la colección si es favorito.

for(var usuario in usuarios) {
if(usuarios[usuario].isFav) {
console.log('El usuario con índice (usamos su nombre como índice) ' + usuario + ' es uno de tus favoritos');
}
}


===========


function MiClase (valor_inicializacion){
//Inicializo las propiedades y métodos
this.miPropiedad = valor_inicializacion
this.miMetodo = nombre_de_una_funcion_definida
}

===  pagina  92


function AlumnoUniversitario(nombre, edad){
this.nombre = nombre
this.edad = edad
this.numMatricula = null
}


function matriculate(num_matricula){
this.numMatricula = num_matricula
}

function imprimete(){
document.write("Nombre: " + this.nombre)
document.write("
Edad: " + this.edad)
document.write("
Número de matrícula: " + this.numMatricula)
}


function AlumnoUniversitario(nombre, edad){
this.nombre = nombre
this.edad = edad
this.numMatricula = null
this.matriculate = matriculate
this.imprimete = imprimete
}


miAlumno = new AlumnoUniversitario("José Díaz",23)

===============



//definimos el método matricularte para la clase AlumnoUniversitario
function matriculate(num_matricula){
this.numMatricula = num_matricula
}
//definimos el método imprimete para la clase AlumnoUniversitario
function imprimete(){
document.write("
Nombre: " + this.nombre)
document.write("
Edad: " + this.edad)
document.write("
Número de matrícula: " + this.numMatricula)
}
//definimos el constructor para la clase
function AlumnoUniversitario(nombre, edad){
this.nombre = nombre
this.edad = edad
this.numMatricula = null
this.matriculate = matriculate
this.imprimete = imprimete
}
//creamos un alumno
miAlumno = new AlumnoUniversitario("José Díaz",23)
//le pedimos que se imprima
miAlumno.imprimete()
//le pedimos que se matricule
miAlumno.matriculate(305)
//le pedimos que se imprima de nuevo (con el número de matricula relleno)
miAlumno.imprimete()

resultado

Creación de una clase y su utilización



Nombre: José Díaz
Edad: 23
Número de matrícula: null
Nombre: José Díaz
Edad: 23
Número de matrícula: 305





=======   Objetos incorporados en Javascript    pag  94

Las clases que se encuentran disponibles de manera nativa en Javascript, y que vamos a ver a
continuación, son las siguientes:
String, para el trabajo con cadenas de caracteres.
Date, para el trabajo con fechas.
Math, para realizar funciones matemáticas.
Number, para realizar algunas cosas con números
Boolean, trabajo con boleanos.


========   Ejemplos de funcionamiento de los objetos de clase String   pag  99


Ejemplo de strings 1
Vamos a escribir el contenido de un string con un carácter separador ("-") entre cada uno de
los caracteres del string.

var miString = "Hola Amigos"
var result = ""
for (i=0;i
result += miString.charAt(i)
result += "-"
}
result += miString.charAt(miString.length - 1)
document.write(result)


resultado

H-o-l-a- -A-m-i-g-o-s


Ejemplo de strings 2
Vamos a hacer un script que rompa un string en dos mitades y las imprima por pantalla. Las
mitades serán iguales, siempre que el string tenga un número de caracteres par. En caso de que
el número de caracteres sea impar no se podrá hacer la mitad exacta, pero partiremos el string
lo más aproximado a la mitad.

var miString = "0123456789"
var mitad1,mitad2
posicion_mitad = miString.length / 2
mitad1 = miString.substring(0,posicion_mitad)
mitad2 = miString.substring(posicion_mitad,miString.length)
document.write(mitad1 + "
" + mitad2)


resultado

01234
56789


Clase Date en Javascript =======

miFecha = new Date()


miFecha = new Date(año,mes,dia,hora,minutos,segundos)
miFecha = new Date(año,mes,dia)
============================================   pagina  103


//en estas líneas creamos las fechas
miFechaActual = new Date()
miFechaPasada = new Date(1998,4,23)
//en estas líneas imprimimos las fechas.
document.write (miFechaActual)
document.write ("
")
document.write (miFechaPasada)
//extraemos el año de las dos fechas
anoActual = miFechaActual.getFullYear()
anoPasado = miFechaPasada.getFullYear()
//Escribimos en año en la página
document.write("
El año actual es: " + anoActual)
document.write("
El año pasado es: " + anoPasado)
//cambiamos el año en la fecha actual
miFechaActual.setFullYear(2005)
//extraemos el día mes y año
dia = miFechaActual.getDate()
mes = parseInt(miFechaActual.getMonth()) + 1
ano = miFechaActual.getFullYear()
//escribimos la fecha en un formato legible
document.write ("
")
document.write (dia + "/" + mes + "/" + ano)

REsultado

Fri Aug 31 2018 22:37:49 GMT-0500 (hora estándar de Perú)
Sat May 23 1998 00:00:00 GMT-0500 (hora estándar de Perú)
El año actual es: 2018
El año pasado es: 1998
31/8/2005


Propiedades de Math  =====   104

Ejemplo de utilización de la clase Math
Vamos a ver un sencillo ejemplo sobre cómo utilizar métodos y propiedaes de la clase Math
para calcular el seno y el coseno de 2 PI radianes (una vuelta completa). Como algunos de
vosotros sabréis, el coseno de 2 PI radianes debe dar como resultado 1 y el seno 0.

document.write (Math.cos(2 * Math.PI))
document.write ("
")
document.write (Math.sin(2 * Math.PI))

1
-2.4492935982947064e-16


==========  Clase Number en Javascript    108


Su funcionamiento se puede resumir en estos ejemplos.

var n1 = new Number()
document.write(n1 + "
")
//muestra un 0
var n2 = new Number("hola")
document.write(n2 + "
")
//muestra NaN
var n3 = new Number("123")
document.write(n3 + "
")
//muestra 123
var n4 = new Number("123asdfQWERTY")
document.write(n4 + "
")
//muestra NaN
var n5 = new Number(123456)
document.write(n5 + "
")
//muestra 123456
var n6 = new Number(false)
document.write(n6 + "
")
//muestra 0
var n7 = new Number(true)
document.write(n7 + "
")
//muestra 1


resultado

0
NaN
123
NaN
123456
0
1


Propiedad NaN: NaN
Propiedad MAX_VALUE: 1.7976931348623157e+308
Propiedad MIN_VALUE: 5e-324
Propiedad NEGATIVE_INFINITY: -Infinity
Propiedad POSITIVE_INFINITY: Infinity


Clase Boolean en Javascript ==============   109


Se puede comprender el funcionamiento de este objeto fácilmente si examinamos unos
ejemplos.

var b1 = new Boolean()
document.write(b1 + "
")
//muestra false
var b2 = new Boolean("")
document.write(b2 + "
")
//muestra false
var b25 = new Boolean(false)
document.write(b25 + "
")
//muestra false
var b3 = new Boolean(0)
document.write(b3 + "
")
//muestra false
var b35 = new Boolean("0")
document.write(b35 + "
")
//muestra true
var b4 = new Boolean(3)
document.write(b4 + "
")
//muestra true
var b5 = new Boolean("Hola")
document.write(b5 + "
")
//muestra true



Ejemplos con Boolean
false
false
false
false
true
true
true


======================  seguimiento de errores   pag  116



Con la función alert() podemos mostrar en cualquier momento el contenido de las variables
que estamos utilizando en nuestros scripts. Para ello ponemos entre paréntesis la variable que
deseamos ver su contenido. Cuando se muestra el contenido de la variable el navegador espera
a que apretemos el botón de aceptar y cuando lo hacemos continúa con las siguientes
instrucciones del script.
Este es un sencillo ejemplo sobre cómo se puede utilizar la función alert() para mostrar el
contenido de las variables.

var n_actual = 0
var suma = 0
while (suma<300 p="">
n_actual ++
suma += suma + n_actual
alert("n_actual vale " + n_actual + " y suma vale " + suma)
}



Los foros estan llenos de peticiones de información sobre Ajax, DOM y como se usan algunas
librerías o efectos. Hay una extraordinaria cantidad de información, scripts, librerías que estan
siendo desarrollados, blogs y nuevos sitios especializados en esta temática, sólo necesitas un
poco de tiempo y echarle un vistazo... es muy fácil los mejores los encuentras en Digg.com o en
del.icio.us, se acabaron aquellos días en el que Javascript y el DHTML se convirtieron en
persona non grata como habilidad principal en tu CV.

==========   pag 117

Conserva la sintaxis y estructura de tu código limpia y ordenada
Esto significa que guardes por ejemplo un límite de longitud de línea (80 caracteres) y que
programes funciones razonablemente pequeñas. Un fallo es pensar que en una función larga lo
podemos hacer todo.
Tener un tamaño razonable para tus funciones significa que las podrás reutilizar cuando
amplies el código, tampoco seas extremista y hagas funciones de una o dos líneas esto puede
llegar a ser más confuso que usar una única función.
Este es un ejemplo que muestra cual es la justa medida en cuanto al tamaño de las funciones y
la división de las tareas:

function toolLinks(){
var tools = document.createElement('ul');
var item = document.createElement('li');
var itemlink = document.createElement('a');
itemlink.setAttribute('href', '#');
itemlink.appendChild(document.createTextNode('close'));
itemlink.onclick = function(){window.close();}
item.appendChild(itemlink);
tools.appendChild(item);
var item2 = document.createElement('li');
var itemlink2 = document.createElement('a');
itemlink2.setAttribute('href', '#');
itemlink2.appendChild(document.createTextNode('print'));
itemlink2.onclick = function(){window.print();}
item2.appendChild(itemlink2);
tools.appendChild(item2);
document.body.appendChild(tools);
}
Puedes optimizar esta función separando cada tarea con su propia función:

function toolLinks(){
var tools = document.createElement('ul');
var item = document.createElement('li');
var itemlink = createLink('#', 'close', closeWindow);
item.appendChild(itemlink);
tools.appendChild(item);
var item2 = document.createElement('li');
var itemlink2 = createLink('#', 'print', printWindow);
item2.appendChild(itemlink2);
tools.appendChild(item2);
document.body.appendChild(tools);
}
function printWindow(){
window.print();
}
function closeWindow() {
window.close();
}
function createLink(url,text,func){
var temp = document.createElement('a');
temp.setAttribute('href', url);
temp.appendChild(document.createTextNode(text));
temp.onclick = func;
return temp;
}


Utiliza inteligentemente los nombres de variables y funciones
Esta es un técnica esencial de programación, utiliza nombres de variables y funciones que sean
totalmente descriptivos e incluso otra persona pueda llegar a plantearse que función realizan
antes de ver el código.
Recuerda que es correcto el uso de guiones o mayúsculas para concatenar diferentes palabras,
en este caso concreto de es más típico el uso de mayúsculas debido a la sintaxis del lenguaje,
(ej. getElementsByTagName()).

CambioFormatoFecha();
cambio_formato_fecha();

Comenta el código
Gracias a los comentarios puedes librarte de más de un quebradero de cabeza, es mejor
resolver el problema una única vez.
Cómo puedes comprobar en cualquier libro de programación cada línea tiene comentarios
explicando su objetivo.
Diferencia las variables dependiendo de su importancia
Este paso es simple: Coloca aquellas variables que son usadas durante todo el script en la
cabecera del código, de esta maneras siempre sabrás donde encontrar estas variables que son
las que determinan el resultado de nuestro código.

function toolLinks(){
var tools, closeWinItem, closeWinLink, printWinItem, printWinLink;
// variables temporales
var printLinkLabel = ?print?;
var closeLinkLabel = ?close?;#
tools = document.createElement(?ul?);
closeWinItem = document.createElement(?li?);
closeWinLink = createLink(?#', closeLinkLabel, closeWindow);
closeWinItem.appendChild(closeWinLink);
tools.appendChild(closeWinItem);
printWinItem = document.createElement(?li?);
printWinLink = createLink(?#', printLinkLabel, printWindow);
printWinItem.appendChild(printWinLink);
tools.appendChild(printWinItem);
document.body.appendChild(tools);
}

Separa el texto del código
Puedes separar el texto del código, utilizando un documento llamado texto.js en formato
JSON.
Un ejemplo que funciona muy bien podría ser:

var locales = {
'en': {
'homePageAnswerLink':'Answer a question now',
'homePageQuestionLink':'Ask a question now',
'contactHoverMessage':'Click to send this info as a message',
'loadingMessage' : 'Loading your data...',
'noQAmessage' : 'You have no Questions or Answers yet',
'questionsDefault': 'You have not asked any questions yet',
'answersDefault': 'You have not answered any questions yet.',
'questionHeading' : 'My Questions',
'answersHeading' : 'My Answers',
'seeAllAnswers' : 'See all your Answers',
'seeAllQuestions' : 'See all your Questions',
'refresh': 'refresh'
},
'es': {
'homePageAnswerLink':'Responde una pregunta',
'homePageQuestionLink':'Haz una pregunta',
'contactHove' : 'Cargando datos...',
'noQAmessage' : 'No quedan preguntas',
'questionsDefault': 'Quedan preguntas por responder',
'answersDefault': 'No quedan preguntas pendientes',
'questionHeading' : 'Mis preguntas',
'answersHeading' : 'Mis respuestas',
'seeAllAnswers' : 'Ver todas las respuestas',
'seeAllQuestions' : 'Ver todas las preguntas',
'refresh': 'Refrescar'
},
'fr': {
}
'de': {
}
};


Esto permitiría a cualquiera que no es programador traducir el texto del script, cambiando
unicamente las etiquetas sin necesidad de acceder al código.
Documenta el código
Escribe una buena documentacion de tu script / librería o efecto. Una buena documentación
da calidad al código, sino preguntate porque existe la clásica documentación en cualquier API
con todas las posibles propiedades y parametros, pero sin duda lo mejor de todo es explicar
con ejemplos que contienen una lista de posibilidades.






http://antoniorivera.blogspot.pe/

RIVERA , ANTONIO
Cel 99915-9107


No hay comentarios: