January 3, 2020

Introducción a JavaScript


¿qué es JavaScript?

JavaScript es un lenguaje de programación que puede ejecutarse en lo que se conoce como lado del cliente en el propio navegador, facilitando que una página web ofrezca dinamismo sin esperar una respuesta desde el lado del servidor.

Por ejemplo permite validar un formulario web de forma dinámica e instantánea sin tener que llegar a realizar el envió de la información al servidor de destino.

Por tanto JavaScript nació para hacer los sitios web más vivos, rápidos y dinámicos al tratarse de un lenguaje de programación que se ejecuta en el propio navegador web.

JavaScript es un lenguaje interpretado ya que el código se ejecuta en un orden de arriba hacia abajo respondiendo de modo inmediato en el que según se va leyendo se va ejecutando. Por tanto NO requiere de una compilación previa como otro lenguajes y No es necesario que transformes a máquina el código para que el navegador lo pueda ejecutar.

Según Wikipedia también se puede añadir que es un lenguaje definido como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Todo esto se verá en otras entradas de esta web. :)

¿qué puede hacer JavaScript?

  • Modificar el HTML, quitando o añadiendo nuevos elementos.
  • Alterar los estilos CSS añadiendo o modificando lo originalmente enviado por el servidor.
  • Reaccionar a las acciones y eventos que realice el usuario cuando usa el ratón, el teclado o cualquier otro elemento que el navegador autorice como un micrófono o una cámara.
  • Enviar y recibir información en segundo plano desde y hacia servidores remotos, usando por ejemplo Ajax.
  • Obtener y establecer "cookies", así como guardar información en lado del cliente con el uso del "local storage".

¿cual es la historia de JavaScript?

La lentitud de las conexiones en los inicios de Internet dificultaba el desarrollo de las aplicaciones web que requerían esperas en cada interacción, por lo que se hizo necesario crear un lenguaje que trabajara en el propio navegador y con ello en el equipo del usuario, o también llamado lado del cliente.

Lo que hoy se conoce como JavaScript fue inicialmente creado en 1995 por Brendan Eich (trabajador de Netscape) con un primer nombre de Mocha y más tarde de LiveScript.

Finalmente Netscape le dio un nombre más comercial llamándolo JavaScript y tratando de convertirlo en un estándar para la web mandando en 1997 la versión 1.1 al ECMA (European Computer Manufactures Association), creándose así el primer estándar de ECMAScript denominado ECMA-262.

¿Por qué se llama JavaScript?

El código o programas escritos en este lenguaje podían escribirse dentro del HTML, ejecutándose de modo automático al cargar la página, por lo que se les llamaba scripts.

Al ser los scripts texto plano que se ejecuta sin la necesidad de compilación dista mucho del lenguaje de programación JAVA.

¿entonces porque su nombre contiene la palabra Java?

Porque inicialmente como se ha citado se le llamó LiveScript, que si representaba mejor lo que realmente era, pero por una cuestión de marketing teniendo en cuenta la popularidad de Java en aquel momento, se decidió cambiarlo de nombre a JavaScript para así darle más notoriedad... y acabar confundiendo a todos a lo largo de los años :) ya que son dos lenguajes de programación que no tienen relación.

Para evitar confusiones podemos llamarlo simplemente JS, y evitar también el uso de JS6, ES8, ES2020 o incluso ECMAScript como alusión a las diferentes estándares que se integran en el lenguaje.

¿dónde se usa JavaScript?

Teniendo en cuenta su origen, se usa principalmente en los navegadores web que por defecto lo tienen soportado y activo.

En realidad el lenguaje de programación JavaScript se puede ejecutar y se ejecuta en cualquier dispositivo que disponga de un programa especial llamado motor de JavaScript o ECMAScript engine y que se trata de un software capaz de interpretar e incluso compilar en tiempo de ejecución el código JavaScript.

Cada navegador web puede tener su propio motor o "JavaScript virtual machine" y por tanto diferentes nombres: V8 para Chrome y Opera, SpiderMonkey en Firefox, Nitro en Safari, etc

Hay servidores que trabajan con código JavaScript, por tanto se usa y ejecuta en el lado del servidor gracias a por ejemplo Node.js que usando el motor V8 de Chrome es capaz de trabajar fuera del navegador.

También se ejecuta en algunas bases de datos como MongoDB y CouchDB.

¿cómo se usa JavaScript?

Aunque es algo que se verá a lo largo de todo el contenido ofrecido en la presente web, se puede adelantar que para hacer uso del mismo solo hay que integrarlo como texto plano de modo similar a como se introduce el CSS o cualquier otro contenido dentro del documento HTML de la página web.

A priori hay dos modos de insertar el código JavaScript dentro de una página web:

  • JavaScript en el propio documento HTML: sólo hay que añadir el código dentro de las etiquetas existentes para ello: <script>Tu codigo</script>
  • JavaScript en fichero externo: igualmente mediante la etiqueta <script> pero haciendo llamada al fichero .js donde se encuentra el código, el cual puede estar guardado en el mismo servidor o en un servidor remoto diferente al que sirve el sitio web: <script src="rutaalfichero/script.js"></script>

Es importante destacar que JavaScript funciona con un orden, de tal modo que el navegador va ejecutando el código según se lo va encontrando en el documento HTML, por lo que es importante el orden del código, así como las funciones y eventos programados para controlar su ejecución.

¿Por qué usar JavaScript?

El desarrollo web gracias a JavaScript ha evolucionado ofreciendo sitios y aplicaciones web más dinámicos y rápidos gracias a que trabaja en el navegador, pero también gracias a que se ha convertido en un estándar que mejora la compatibilidad entre navegadores web.

Por otra parte la posibilidad de ejecutarlo en el lado del servidor permite unificar el desarrollo de aplicaciones web, por lo que se puede usar el mismo lenguaje de programación en ambos entornos.

Existen otros lenguajes de programación de más alto nivel que están surgiendo y que finalmente lo que hacen es compilarse o traducirse a lo que realmente entienden todos los navegadores que es el estándar del lenguaje JavaScript. Ejemplo: CoffeScript, TypeScript, Flow, Dart,..

El motivo de que aparezcan lenguajes basados en JavaScript pero de más alto nivel es para implementar los últimos estándares sin problemas de compatilidad ya que finalmente se compilan en JS básico, para controlar mejor el código añadiendo por ejemplo tipado de variables, así como también para mejorar la sintaxis, ya que fue un lenguaje de programación creado para ser muy flexible y fácil de implementar (scripts ligeros) por lo que puede pecar por demasiada flexibilidad y con ello menor control del código.

¿qué NO puede hacer JavaScript desde el navegador?

Es seguro porque fue creado para trabajar en el navegador por lo que a diferencia de cuando se ejecuta en el lado del servidor, cuando se ejecuta en el lado del cliente tiene restricciones que no le permiten acceder a los ficheros del equipo, ni tampoco a lo que ocurre en otra pestaña del navegador, limitándose su operativa al sitio web donde se ejecuta.

  • No tiene acceso al sistema operativo, por lo que no puede libremente acceder a los ficheros del disco duro ni ejecutar programas. Su operativa se limita a incluir los ficheros que elige el usuario por ejemplo como adjuntos en un formulario.
  • No tiene acceso a dispositivos externos como microfonos o cámaras que requieren la autorización expresa del visitante a cada sitio web.
  • No hay interacción entre diferente pestañas del navegador y por tanto entre diferentes sitios web aunque el usuario visite varios a la vez son totalmente independientes.
  • Sólo se puede comunicar para intercambiar datos con el servidor de origen del sitio web o aquellos que expresamente estén así autorizados.

Son todo aspectos que el propio lenguaje, o más bien los navegadores, integran como medida de seguridad. Esto evita que una pagina web con malas intenciones pudiera acceder a los datos del equipo de cualquier visitante.

En definitiva, como medida de seguridad, cada pestaña del navegador se considera un ambiente separado de ejecución. La excepción está en los plugins o extensiones del navegador que requieren recibir permisos concretos por parte del usuario para ampliar los permisos de lo que pueden llegar a controlar.

Si te ha gustado... ¡Compártelo!