Header Ads Widget

Ticker

6/recent/ticker-posts

Una introducción a JavaScript

Veamos qué tiene de especial JavaScript, qué podemos lograr con él y qué otras tecnologías funcionan bien con él.

¿Qué es JavaScript?

JavaScript se creó inicialmente para "dar vida a las páginas web" .
Los programas en este lenguaje se llaman scripts . Se pueden escribir directamente en el HTML de una página web y ejecutarse automáticamente a medida que se carga la página.
Los scripts se proporcionan y ejecutan como texto sin formato. No necesitan preparación especial o compilación para correr.
En este aspecto, JavaScript es muy diferente de otro lenguaje llamado Java .
¿Por qué se llama Java Script?
Cuando se creó JavaScript, inicialmente tenía otro nombre: "LiveScript". Pero Java era muy popular en ese momento, por lo que se decidió que sería útil posicionar un nuevo lenguaje como un "hermano menor" de Java.
Pero a medida que evolucionó, JavaScript se convirtió en un lenguaje totalmente independiente con su propia especificación llamada ECMAScript , y ahora no tiene ninguna relación con Java.
Hoy, JavaScript puede ejecutarse no solo en el navegador, sino también en el servidor, o en cualquier dispositivo que tenga un programa especial llamado motor de JavaScript .
El navegador tiene un motor incrustado a veces llamado "máquina virtual JavaScript".
Diferentes motores tienen diferentes "nombres en clave". Por ejemplo:
  • V8 - en Chrome y Opera.
  • SpiderMonkey - en Firefox.
  • ... Hay otros nombres en clave como "Trident" y "Chakra" para diferentes versiones de IE, "ChakraCore" para Microsoft Edge, "Nitro" y "SquirrelFish" para Safari, etc.
Los términos anteriores son buenos para recordar porque se usan en artículos para desarrolladores en Internet. Los usaremos también. Por ejemplo, si "una característica X es compatible con V8", entonces probablemente funcione en Chrome y Opera.
¿Cómo funcionan los motores?
Los motores son complicados. Pero lo básico es fácil.
  1. El motor (incrustado si es un navegador) lee ("analiza") el script.
  2. Luego convierte ("compila") el script al lenguaje de máquina.
  3. Y luego se ejecuta el código de la máquina, bastante rápido.
El motor aplica optimizaciones en cada paso del proceso. Incluso observa el script compilado mientras se ejecuta, analiza los datos que fluyen a través de él y optimiza aún más el código de la máquina en función de ese conocimiento.

¿Qué puede hacer JavaScript en el navegador?

JavaScript moderno es un lenguaje de programación "seguro". No proporciona acceso de bajo nivel a la memoria o la CPU, porque se creó inicialmente para navegadores que no lo requieren.
Las capacidades de JavaScript dependen en gran medida del entorno en el que se está ejecutando. Por ejemplo, Node.js admite funciones que permiten a JavaScript leer / escribir archivos arbitrarios, realizar solicitudes de red, etc.
JavaScript en el navegador puede hacer todo lo relacionado con la manipulación de la página web, la interacción con el usuario y el servidor web.
Por ejemplo, JavaScript en el navegador puede:
  • Agregue nuevo HTML a la página, cambie el contenido existente, modifique estilos.
  • Reaccione a las acciones del usuario, ejecute con los clics del mouse, movimientos del puntero, pulsaciones de teclas
  • Envíe solicitudes a través de la red a servidores remotos, descargue y cargue archivos (las llamadas tecnologías AJAX y COMET ).
  • Obtenga y establezca cookies, haga preguntas al visitante, muestre mensajes.
  • Recuerde los datos en el lado del cliente ("almacenamiento local").

¿Qué NO PUEDE hacer JavaScript en el navegador?

Las capacidades de JavaScript en el navegador están limitadas por la seguridad del usuario. El objetivo es evitar que una página web malvada acceda a información privada o dañe los datos del usuario.
Los ejemplos de tales restricciones incluyen:
  • JavaScript en una página web no puede leer / escribir archivos arbitrarios en el disco duro, copiarlos o ejecutar programas. No tiene acceso directo a las funciones del sistema operativo.
    Los navegadores modernos le permiten trabajar con archivos, pero el acceso es limitado y solo se proporciona si el usuario realiza ciertas acciones, como "colocar" un archivo en una ventana del navegador o seleccionarlo mediante una <input>etiqueta.
    Hay formas de interactuar con la cámara / micrófono y otros dispositivos, pero requieren el permiso explícito del usuario. Por lo tanto, una página habilitada para JavaScript puede no habilitar furtivamente una cámara web, observar los alrededores y enviar la información a la NSA .
  • Las diferentes pestañas / ventanas generalmente no se conocen entre sí. A veces lo hacen, por ejemplo, cuando una ventana usa JavaScript para abrir la otra. Pero incluso en este caso, JavaScript de una página puede no acceder a la otra si provienen de diferentes sitios (de un dominio, protocolo o puerto diferente).
    Esto se llama la "Política del mismo origen". Para evitarlo, ambas páginas deben aceptar el intercambio de datos y contener un código JavaScript especial que lo maneje. Cubriremos eso en el tutorial.
    Esta limitación es, nuevamente, para la seguridad del usuario. Una página desde la http://anysite.comque un usuario ha abierto no debe poder acceder a otra pestaña del navegador con la URL http://gmail.comy robar información desde allí.
  • JavaScript puede comunicarse fácilmente a través de la red con el servidor de donde proviene la página actual. Pero su capacidad para recibir datos de otros sitios / dominios está paralizada. Aunque es posible, requiere un acuerdo explícito (expresado en encabezados HTTP) desde el lado remoto. Una vez más, eso es una limitación de seguridad.
Dichos límites no existen si JavaScript se usa fuera del navegador, por ejemplo, en un servidor. Los navegadores modernos también permiten complementos / extensiones que pueden solicitar permisos extendidos.

¿Qué hace que JavaScript sea único?

Hay al menos tres grandes cosas sobre JavaScript:
  • Integración completa con HTML / CSS.
  • Las cosas simples se hacen simplemente.
  • Soporte por todos los principales navegadores y habilitado por defecto.
JavaScript es la única tecnología de navegador que combina estas tres cosas.
Eso es lo que hace que JavaScript sea único. Es por eso que es la herramienta más extendida para crear interfaces de navegador.
Dicho esto, JavaScript también permite crear servidores, aplicaciones móviles, etc.

Idiomas "sobre" JavaScript

La sintaxis de JavaScript no se adapta a las necesidades de todos. Diferentes personas quieren diferentes características.
Eso es de esperar, porque los proyectos y requisitos son diferentes para todos.
Tan recientemente apareció una gran cantidad de nuevos idiomas, que se transpilan (convierten) a JavaScript antes de que se ejecuten en el navegador.
Las herramientas modernas hacen que la transpilación sea muy rápida y transparente, lo que permite a los desarrolladores codificar en otro idioma y convertirla automáticamente "bajo el capó".
Ejemplos de tales idiomas:
  • CoffeeScript es un "azúcar sintáctico" para JavaScript. Introduce una sintaxis más corta, lo que nos permite escribir código más claro y más preciso. Por lo general, a los desarrolladores de Ruby les gusta.
  • TypeScript se concentra en agregar "mecanografía estricta de datos" para simplificar el desarrollo y el soporte de sistemas complejos. Está desarrollado por Microsoft.
  • Flow también agrega mecanografía de datos, pero de una manera diferente. Desarrollado por Facebook.
  • Dart es un lenguaje independiente que tiene su propio motor que se ejecuta en entornos que no son del navegador (como aplicaciones móviles), pero que también se puede transpilar a JavaScript. Desarrollado por Google.
Hay mas. Por supuesto, incluso si usamos uno de los idiomas transpilados, también deberíamos saber JavaScript para comprender realmente lo que estamos haciendo.

Resumen

  • JavaScript se creó inicialmente como un lenguaje solo para el navegador, pero ahora también se usa en muchos otros entornos.
  • Hoy, JavaScript tiene una posición única como el lenguaje de navegador más ampliamente adoptado con plena integración con HTML / CSS.
  • Hay muchos idiomas que se "transpilan" a JavaScript y proporcionan ciertas funciones. Se recomienda echarles un vistazo, al menos brevemente, después de dominar JavaScript.

Publicar un comentario

0 Comentarios