Javascript fue creado en 1995 por Brendan Eich, quien trabajaba en una empresa que a día de hoy ya no existe, que en su momento tenía un navegador que competía con el que era el navegador por excelencia en la web, Internet Explorer, se trataba de Nextcape Navigator. Los responsables de este navegador le piden a Brendan que haga una tecnología que pudiera interactuar con el navegador web para que pudiese realizar cosas más avanzadas. Podemos decir que Brendan Eich fue el padre de Javascript.

No confundir Javascript con Java, son lenguajes completamente distintos. Javascript tuvo varios nombres al principio, entre ellos Mocha y LiveScript.

Evolución de Javascript

Javascript nació en el año 1995 y está basado en un estándar denominado ECMAScript, cuya primera edición data del año 1997, la versión 2 data de 1998, la 3 de 1999, la versión 4 fue abandonada por diferentes cuestiones, la versión 5 salió en 2009, la 5.1 en 2011, y la versión 6 en 2015.

A partir del año 2015, Chrome desbanca a Internet Explorer como navegador más usado. Los navegadores actuales tienen una misma ruta crítica de como van implementando las características de HTML5.

A partir de este año se decidió que cada año iba a salir una actualización nueva con nuevas características, por lo que desde este año hablamos de ES2015 o ES6, ES206 o ES7… Desde el 2019 se habla de ESNext.

Historia de ECMAScript

Edición Publicación Cambios
1 1997 Primera edición.
2 1998 Cambios editorales para mentener la especificación completa alineada con el estándar internacional ISO/IEC 16262.
3 1999 Se agregaron expresiones regulares, mejor manejo de strings, nuevo control de declaraciones, manejo de excepciones con try/catch, definición más estricta de errores, formato para la salida numérica y otras mejoras.
4 Abandonado La cuarta edición fue abandonada debido a diferencias políticas respecto a la complejidad del lenguaje. Muchas características propuestas para la cuarta edición fueron completamente abandonadas; algunas fueron propuestas para la edición ECMAScript Harmony.
5 2009 Agrega el modo estricto strict mode, un subconjunto destinado a proporcionar una mejor comprobación de errores y evitar constructores propensos a errores. Aclara varias ambigüedades de la tercera edición, y afina el comportamiento de las implementaciones del «mundo real» que difieren consistentemente desde esa especificación. Agrega algunas nuevas características, como getters y setters, librería para el soporte de JSON, y una más completa reflexión sobre las propiedades de los objetos.
5.1 2011 Está completamente alineada con la tercera edición del estándar internacional ISO/IEC 16262:2011.
Apartir del 2015 las actualizaciones son continuas teniendo una versión anual.
6 2015 ES2015 aka ES6.
7 2016 ES2016 aka ES7.
8 2017 ES2017 aka ES8.
9 2018 ES2018 aka ES9.
10 2019 ES2019 aka ES10.
ESNext 2020 A partir del 2020 las nuevas actualizaciones al estándar simplemente se bautizarán como ESNext.

Isomorfismo

Isomorfismo (Iso = igual / Morfo = Forma) significa realizar una aplicación completa con un a sóla tecnología. Hoy Javascript es el único lenguaje capaz de ejecutarse en las 3 capas de una aplicación.

  • Frontend (Javascript)
  • Backend (Node.js).
  • Persistencia de dat.os (MongoDB, Couch DB, Firebase…).

Javascript nace en los navegadores, y a día de hoy es la única tecnología usada para trabajar en ellos.

Con Javascript puedes

Con Javascript puedes realizar prácticamente cualquier cosa:

  • Diseño y desarrollo web.
  • Diseño de videojuegos.
  • Experiencias 3D, realidad aumentada, realidad virtual.
  • Controlar hardware (arduínos, robots, drones, domótica…).
  • Aplicaciones híbridas y móviles
  • Machine Learning.

Características

  • Se trata de un lenguaje de alto nivel.
  • Es un lenguaje interpretado y dinámico: no necesita una fase de compilación para posteriormente ejecutar la sintaxis. Es decir, se compila en tiempo de ejecución, lo que hace que lo vuelva dinámico.
  • Es débilmente tipado: cuando creamos una variable, dicha variable no se casa con un tipo de datos, puede empezar siendo un string y posteriormente debido al flujo de la programación, pueda almacenar otro tipo de valor (number, boolean…).
  • Es Multiparadigma: podemos utilizar programación estructurada, programación orientada a objetos, programación funcional.
  • Es Case Sensitive (sensible a mayúsculas y minúsculas).
  • No son necesarios (aunque sí recomendables por buenas prácticas) los puntos y comas (;) al final de cada línea.