¿Qué es JavaScript?

Decir que JavaScript está en aumento en el desarrollo web sería una subestimación. De hecho, hace años, el famoso programador Jeff Atwood acuñó La ley de atwood en el cual manifestó:

Cualquier aplicación que se pueda escribir en JavaScript, eventualmente se escribirá en JavaScript.

Al momento de escribir este artículo, hay tantos frameworks y bibliotecas de JavaScript que es abrumador saber por dónde empezar, especialmente si eres un principiante.. 

Y sé que gran parte de lo que publicamos aquí está dirigido a aquellos que ya tienen experiencia en escribir aplicaciones web o hacer algo en desarrollo web. Pero eso no es el público objetivo para este artículo.. 

En su lugar, esto se está escribiendo específicamente para aquellos de ustedes que nunca (o apenas) han escrito una línea de JavaScript y desean aprender más sobre el idioma y entender lo que hay por ahí. Además, queremos cubrir cómo se usa y qué esperar de él..

En resumen, si eres un profesional experimentado, entonces este artículo no es para ti; Sin embargo, si tienes curiosidad por ingresar a JavaScript pero no estás seguro de por dónde empezar, quizás este manual te ayude a orientarte en la dirección correcta..

Aprender JavaScript: la guía completa

Hemos creado una guía completa para ayudarlo a aprender JavaScript, ya sea que esté comenzando a trabajar como desarrollador web o si desea explorar temas más avanzados..

JavaScript definido

Probablemente haya escuchado que JavaScript se conoce como "un lenguaje de script del lado del cliente", que es otra forma de decir que es un lenguaje de programación que se ejecuta en un navegador web. 

Alternativamente, Wikipedia lo define de esta manera:

JavaScript es un lenguaje de programación de alto nivel, dinámico, sin tipo e interpretado. Se ha estandarizado en la especificación del lenguaje ECMAScript..

Todo lo anterior es cierto (con diversos grados de complejidad), pero también vale la pena señalar que JavaScript también puede ejecutarse en el lado del servidor. Aunque nos estamos adelantando a nosotros mismos. En su lugar, primero hablemos sobre algunos de los puntos anteriores y hablaremos sobre JavaScript del lado del servidor más adelante en el artículo.

  • Nivel alto. Cuando un lenguaje de programación es de alto nivel, se considera uno que está construido sin necesidad de conocer detalles más precisos sobre la computadora subyacente. No tiene que administrar la memoria, no tiene que saber qué tipo de procesador se está ejecutando y no tiene que lidiar con cosas como punteros (como en lenguajes como C o Ensamblaje).
  • Dinámica. Los lenguajes que son dinámicos les permiten a los desarrolladores extender ciertos aspectos del lenguaje agregando un nuevo código o introduciendo nuevos objetos (como un Enviar objeto) mientras el programa se está ejecutando y no es necesario compilarlo. Esta es una poderosa característica de JavaScript.
  • Desatado. Si tiene alguna experiencia en programación, es probable que haya encontrado ciertos tipos de lenguajes que requieren que declare el tipo de variable con la que está trabajando. Por ejemplo, tal vez su variable almacenará un cuerda o un booleano. En JavaScript, esto no es necesario. En su lugar, simplemente declara una variable con la var palabra clave.
  • Interpretado. Cuando un idioma es un lenguaje compilado, el código que escribe se convierte en un binario ejecutable que puede distribuir a otros. En Windows, estos archivos se conocen como archivos EXE. En OS X, estos son a menudo programas que descarga de la App Store o que arrastra al directorio de aplicaciones. JavaScript se interpreta, lo que significa que no hay compilador. En cambio, el código se interpreta (al igual que PHP), por lo que hay una pieza intermedia de software llamada intérprete que se encuentra entre el código que has escrito y la computadora para traducir las instrucciones de un lado a otro..
  • Estandarizado. JavaScript es estandarizado (su nombre oficial es ECMAScript) lo que significa que cualquier navegador que implemente el estándar ofrecerá las mismas características que cualquier otro navegador. Si no estuviera estandarizado, Chrome podría proporcionar algunas características que Edge no, y viceversa..

Ahora que hemos cubierto los atributos del lenguaje, podemos discutir ciertos aspectos y matices acerca del idioma.. 

Si bien todo lo anterior es importante, también es esencial saber cómo funciona el idioma (especialmente si ha trabajado con otros idiomas) para no desarrollar con ideas preconcebidas sobre cómo hacerlo. podría trabajar o como debería trabajo.

En su lugar, prefiero cubrir cómo hace trabaje para que pueda comenzar a escribir código y entender exactamente qué es lo que está haciendo.

Sobre el idioma

Por encima de todo, JavaScript es un lenguaje de programación orientado a objetos, pero es probable que difiera un poco de lo que normalmente se ve (si ha usado un lenguaje de programación orientado a objetos).

JavaScript es lo que se llama un lenguaje prototípico. Esto significa que todos los objetos en JavaScript, como Cuerda, se basan en prototipos. 

Esto nos permite, como desarrolladores, agregar funcionalidad adicional a los objetos mediante el uso de la herencia prototípica:

La programación basada en prototipos es un estilo de programación orientada a objetos en el que la reutilización del comportamiento (conocida como herencia) se realiza a través de un proceso de clonación de objetos existentes que sirven como prototipos..

Argumentaría que si nunca antes ha trabajado con un lenguaje orientado a objetos, es posible que tenga una ventaja en este punto porque no tiene un modelo conceptual que pueda cambiar para pensar cómo funciona esto..

Si, por otro lado, tu tener trabajado en este tipo de idiomas, entonces creo que vale la pena distinguir cómo la herencia prototípica difiere de la herencia clásica:

  • En herencia clásica, Nosotros, como desarrolladores, escribiremos una clase. Se pueden crear múltiples objetos a partir de esta clase única. Además, podemos escribir otra clase que hereda de esta clase y luego crear instancias de aquellos clases En esta situación, las subclases están compartiendo código con su clase base. Así que cuando creas una instancia de una subclase, obtienes la funcionalidad tanto de la subclase como de la clase principal.
  • En herencia prototípica, No hay tal cosa como clases. En su lugar, simplemente define un objeto e introduce cualquier funcionalidad que sea necesaria. Cuando desea agregar funcionalidad a un objeto existente, lo hace agregándolo al prototipo del objeto. Si intenta llamar a un método en un objeto como Número entonces primero buscará el método en ese objeto. Si no lo encuentra, subirá la cadena hasta que encuentre el método (que puede vivir en la base). Objeto).

Finalmente, y quizás lo más importante a tener en cuenta, es que cuando realiza un cambio en un objeto a través de su prototipo, todos los que lo utilizan pueden acceder a él (al menos dentro del contexto de su entorno)..

Es realmente poderoso, es realmente genial, pero también requiere un ligero cambio de pensamiento si no estás acostumbrado a trabajar en un entorno como ese..

¿Cómo usamos JavaScript??

En términos de cómo realmente utilizamos JavaScript, en última instancia, depende de cuáles sean sus objetivos. En un momento dado, trabajar con JavaScript significaba que tenía que "hacer que algo sucediera" en una página web. Estaba destinado a controlar el comportamiento..

Esto podría ser introducir un elemento, quitar (u ocultar) un elemento, o cosas por el estilo. Luego, la web avanzó un poco y los navegadores pudieron hacer llamadas asíncronas al servidor, manejar la respuesta y luego cambiar el estado de la página según esta respuesta..

Todo esto se logra a través de Ajax. Si estás leyendo esto, es probable que estés familiarizado con el término. Si no lo está, puede pensar que es una forma de que JavaScript realice una llamada al servidor que aloja la página y luego maneje la respuesta que recibe. todo sin recargar la pagina.

Pero ha madurado incluso más allá de eso.. 

Google ha desarrollado un motor de análisis de JavaScript altamente sofisticado conocido como V8, y otros navegadores están trabajando para proporcionar un rendimiento óptimo de JavaScript, también. 

De hecho, ahora podemos escribir JavaScript en el servidor usando herramientas como Node.js. Además, incluso podemos crear aplicaciones híbridas que se ejecutan en nuestros dispositivos móviles. Esto significa que podemos crear soluciones para nuestros teléfonos, tabletas y computadoras de escritorio mediante el uso de JavaScript.

Y esto proviene de un lenguaje que una vez se usó como una forma de animar cosas en una pantalla. Todo esto para decir es que si eres nuevo en JavaScript, no lo subestimes.

"¿Qué debo esperar del idioma?"

Todo lo anterior es interesante de leer, y es divertido ver lo que podemos hacer, pero desde una perspectiva puramente práctica, ¿qué podemos esperar del lenguaje JavaScript?? 

Independientemente de si es nuevo en el idioma o si está buscando aprender un nuevo idioma cuando tiene otro origen, tiene un nivel de expectativas en cuanto a lo que el idioma puede ofrecer.. 

Y aunque hemos hablado sobre cómo funciona el lenguaje desde una perspectiva interna, no hemos hablado realmente de los objetos que están disponibles en el lenguaje, y mucho menos de las API. Para ser honesto, cubrir las API y las funciones integradas en el lenguaje sería un artículo propio.. 

¿Pero cubriendo sus objetos incorporados? Eso es algo que podemos revisar antes de terminar este artículo:

  • Objeto. El objeto base del cual todos los demás objetos heredan parte de su funcionalidad básica..
  • Función. Dado que JavaScript está realmente orientado a objetos, esto significa que todo es un objeto, incluidas las funciones. Entonces, cuando crea una nueva función, está creando una referencia a un objeto con un tipo de función. Y las funciones tienen propiedades que puede inspeccionar durante el tiempo de ejecución (como los argumentos que se le pasan).
  • Booleano. Este objeto sirve como un contenedor de objeto para un valor booleano. En muchos idiomas, los booleanos son un tipo de datos que puede ser cierto o falso. En JavaScript, aún puede trabajar con esos valores, pero deben entenderse como objetos.
  • Número. En muchos lenguajes de programación, hay tipos primitivos como flotador, En t, doble, y así. En JavaScript, solo hay un tipo de número, y también es un objeto.
  • Fecha. Trabajar con fechas en la programación nunca es divertido, especialmente cuando introduce zonas horarias. No puedo decir que JavaScript solucionará todos sus problemas en relación con las zonas horarias, pero puede facilitar el trabajo con fechas (desde el año y el mes hasta el día, la hora, los minutos y los segundos)..
  • Cuerda. Casi todos los lenguajes de programación tienen un tipo de datos de cadena primitivo. JavaScript no es muy diferente, excepto que, como es de esperar, la cadena es un objeto con propiedades propias.

Recuerde que todos los tipos que ve arriba son objetos con propiedades (y funciones) propias que puede llamar. Esto no significa que deba llamar a los constructores para crear una instancia de sus variables. Es decir, puede crear cadenas y valores booleanos y números como este:

var example_string = '¡Hola mundo!'; var example_boolean = true; var example_number = 42;

Pero, en definitiva, siguen siendo objetos..

Para ser claros, estos son los BASIC objetos. Hay objetos mucho más avanzados que vale la pena explorar, especialmente si va a trabajar con el manejo de errores, varios tipos de colecciones más allá de Arrays, etc..

Si está interesado en leer más sobre esto, le recomiendo visitar esta página en la Red de desarrolladores de Mozilla.

¿Qué bibliotecas y marcos están disponibles??

Si ha estado al día con los diversos marcos, bibliotecas y otras herramientas que existen en la economía de JavaScript, entonces no se queda atrás en cuanto a cuán vibrante se ha vuelto la economía..

Pero este artículo está dirigido a aquellos que buscan comenzar con JavaScript. Ahora que tiene una comprensión básica de cómo está estructurado el lenguaje y cómo funciona, es hora de ver las bibliotecas y los marcos que se ofrecen para ayudar a facilitar el desarrollo web y / o de aplicaciones..

  • jQuery es una biblioteca que tiene como objetivo proporcionar una API de navegador cruzado que le permite "escribir menos, hacer más".
  • Angular es un marco de JavaScript que tiene como objetivo facilitar la creación de aplicaciones de una sola página..
  • React es una biblioteca de JavaScript para construir interfaces de usuario.
  • Backbone tiene como objetivo dar estructura a las aplicaciones web mediante el uso de modelos, colecciones y vistas..
  • Ember.js es otro marco para "crear aplicaciones web ambiciosas".
  • Y más.

Esto es lejos de una lista completa de lo que está disponible, pero es un comienzo, y es un puñado de opciones que las personas que se familiaricen con JavaScript deberían conocer al menos, incluso si no hace ningún trabajo con ellos..

Y a medida que comienza a aprender JavaScript y comienza a adquirir algunas de estas herramientas, puede descubrir cuán populares son algunas de ellas cuando se trata de algunas de sus aplicaciones favoritas..

Aprendiendo JavaScript

Como ha llegado a esperar, Envato es todo para "enseñar habilidades a millones en todo el mundo". Entonces, ¿qué sería de una publicación como esta si no incluyera enlaces a algunos de nuestros artículos y cursos de JavaScript más populares??

  • Cuestionario: JavaScript ES6, ¿Sabe usted la herramienta adecuada para el trabajo??
  • Mantener las promesas con JavaScript
  • Creando aplicaciones de una sola página con WordPress y Angular.js
  • El genio de las cadenas de plantillas en ES6
  • Fundamentos de JavaScript ES6
  • Pruebas de directivas angulares
  • JavaScript para Windows 10 Universal Apps

Todos estos recursos son ideales para comenzar con JavaScript y agregarlo a su repertorio de habilidades de desarrollo web.

Conclusión

Cuando se trata de desarrollo web, JavaScript está aquí para quedarse. Si bien no puede usar lo que se considera como "JavaScript de vainilla" y optar por una de las muchas bibliotecas y / o marcos disponibles, JavaScript es un lenguaje que casi todos los desarrolladores web deben saber.

Por supuesto no todo el mundo Trabaja en el front-end. Algunos son puramente desarrolladores del lado del servidor; algunos son puramente desarrolladores del lado del cliente. No obstante, todos tenemos que trabajar juntos para asegurarnos de que las distintas partes de nuestras aplicaciones se estén comunicando entre sí..

Para ese fin, es al menos importante comprender cómo se envían los datos del lado del cliente al lado del servidor a través de JavaScript, y cómo se procesan en el lado del servidor y luego se devuelven al lado del cliente para que se utilicen de cualquier manera..

No seas tan rápido en descartar JavaScript solo porque no eres un desarrollador de front-end. Es probable que alguien con quien esté trabajando lo esté utilizando y necesitará su trabajo para unir partes de la aplicación.

Por supuesto, este artículo es sólo arañar la superficie. Como dije al principio, el propósito del artículo es explicar qué es JavaScript, cómo se usa y qué esperar de él, especialmente para aquellos que recién están comenzando con el lenguaje..

JavaScript se ha convertido en uno de los idiomas de facto de trabajar en la web. No deja de tener sus curvas de aprendizaje, y también hay muchos marcos y bibliotecas para mantenerte ocupado. Si está buscando recursos adicionales para estudiar o usar en su trabajo, vea lo que tenemos disponible en el mercado de Envato.

Si ha disfrutado de este artículo, también puede consultar mis cursos y tutoriales en la página de mi perfil y, si está interesado, puede leer más artículos específicamente sobre el desarrollo de WordPress y WordPress en mi blog.. 

Recursos adicionales

  • Programación de JavaScript de Head First
  • Elocuente JavaScript de Marijn Haverbeke
  • JavaScript de Douglas Crockford: Las partes buenas
  • JavaScript en la red de desarrolladores de Mozilla