Curso Javascript Parte I

Saludos, apartir de hoy me voy a dar a la tarea de publicar un curso de JavaScript, en este curso tratare de cubrir de manera secilla todos los aspectos básicos de JS. Lo que te permitira al final crear sitios web con JS. Estoy considerando que no tienes conocimientos de JavaScript pero si debes de tener conocimientos, básicos de HTML. Si no los tienes puedes mirar el curso de HTML en mi blog.

Ahora comencemos con un poco de historia para ponerlos en contexto:

LOS QUE’s Y PORQUE’s de  JavaScript?

Lo que conocemos como World Wide Web o WWW comenzó como un servicio para compartir documentos e información entre universidades y centros de investigación, para este propósito se crea un lenguaje que les permitía crear documentos de texto con formato y enlazar otros documentos que estuvieran también en el WWW, a este lenguaje se le llamo de Hiper-texto o HTML (Hiper text markup language). Este lenguaje necesitaba ser interpretado para mostrarlo al usuario final, para ello surgieron los navegadores o browsers (ya que en el transporte solo se transmite texto, ósea las instrucciones para renderear la página), uno de los primeros fue Netscape.

Estas “paginas” al inicio no podían hacer otra cosa más que mostrar información escrita y enlazarse con otras páginas. Poco después se incorporaron al estándar de HTML controles y formularios, los cuales permitían construir páginas con las que el usuario pudiera interactuar, aunque fuera solo para mandar información al servidor ya que el browser en muchos sentidos era una “terminal tonta”, ya que no podía incluirse ninguna programación del lado del cliente.

Pero fue un programador de Netscape quien diseña un lenguaje basado en ScriptEase, el cual adapta al navegador Netscape 2.0 y le llama LiveScript. La idea principal detrás de LiveScript fue permitir manipular de manera dinámica los objetos HTML del lado del cliente, sin necesidad de hacer una petición al servidor y esperar a regenerar la página para tomar decisiones, como verificar la información que el usuario escribía en un formulario. Debido al éxito Netscape y Sun Microsystems se unen para extender el lenguaje y de ahí nace JavaScript.

Netscape 3.0 se lanza como el primer navegador integrado con la primer versión de JavaScript, el cambio de nombre fue meramente comercial (estaba de moda la palabra Java al parecer). En la misma época Microsoft lanza su IE 3.0 con el JScript que fue una copia de la implementación de Netscape, con el que el cual comparte algunas similitudes pero no es igual. Es por esto que algunas sentencias cambian de navegador en navegador.

En 1997, Netscape decide estandarizar el lenguaje y lo manda al ECMA European Computer Manufacturers Association, el cual crea el primer lenguaje estándar y le nombra ECMAScript. Actualmente casi todos los navegadores cumplen con este estándar. De hecho lo que conocemos hoy como JavaScript no es más que la implementación que realizó la empresa Netscape del estándar ECMAScript.

ENTONCES COMO DEFINIMOS A JAVASCRIPT?

JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.

Vamos a analizar cada propiedad mencionada de JS:

  • Primero, JavaScript es un lenguaje de programación basado en la estructura y forma de C y C++, pero a diferencia de este es un lenguaje interpretado, esto quiere decir que hay un intérprete el cual es necesario para ejecutarse, es decir, no esta compilado si no que se compila y ejecuta cuando se requiere.

Cuando se hace un programa en JAVA, C, C++, etc. El paso inmediato anterior a ejecutar ese programa es compilar y enlazar el código, en este paso el código de lenguaje humano se interpreta (se traduce) a lenguaje de máquina, o a un lenguaje intermedio el cual se pueda ejecutar en el sistema operativo actual. JavaScript por el contrario no se compila, el programa se distribuye en lenguaje humano (Java) y es solo al momento de usarlo cuando el intérprete lee el código, lo traduce y lo ejecuta al mismo tiempo.

  • Segundo, es un lenguaje que sigue el estándar ECMAScript, creado con el proposito principal de hacer validaciones y manipular dinamicamente los objetos del browser del lado del cliente.
  • Tercero, es un lenguaje orientado a Objetos; si bien se dice que JS es un lenguaje orientado a objetos, este emplea el paradigma conocido como  programacion sin clases o basado en prototipos. La programación basada en prototipos es un estilo de programación orientada a objetos en la que las clases no están presentes y la reutilización de comportamiento (conocido como herencia en otros lenguajes) se lleva a cabo a través de un proceso de decoración de objetos existentes que sirven de prototipos.

 


var ejemplo= prototipoEjemplo {}; //Este es el prototipo actualmente esta vacio.
//se crean miembros propiedades y metodos en el prototipo
prototipoEjemplo={
  regExParaNombre:"", //define regex para la validación del nombre
  regExParaTelefono:"",// define regex para validación del teléfono
validaNombre: function ValidaNombre(){
    // Hace algo con el nombre que usted ingresa a la variable reExParaNombre
    // usando "this.regExParaNombre"
   }
}
  • Cuarta, es un lenguaje imperativo, pues necesitas escribir paso a paso que debe hacer la maquina para llegar al resultado esperado. En la programación imperativa se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema.
  • Quinta, es un lenguaje dévilmente tipado por que, no controla los tipos de las variables que se declaran, de este modo, es posible usar variables de cualquier tipo en un mismo escenario. Por ejemplo, una función puede recibir como parámetro un valor entero, cadena de caracteres, flotante, etc.
//Ejemplos, en JS el siguiente código en válido:
var a=3; //es un entero
var txt='hola mundo'; // es un string
var resp= txt+a; // el resultado es un string 

var a=3; //es un entero
var b=44.66; // es un float
var resp= a+b; // el resultado es un float
  • Y Finalmente, es un lenguaje dinámico, pues es posible modificar y extender cualquier objeto en tiempo de ejecución.
//Ejemplo:
var obj=new Caja(); //El prototipo Caja no contiene originalmente
                    //el miembro nombre del cajero
obj.NombreCajero = ‘Jose’; // Se agrega dinámicamente al objeto obj
//el miembro NombreCajero

 

Hasta aquí la primera parte de este curso. Espero sus sugerencias y comentarios.

Happy coding.