Ring ring

Qué es JavaScript? - Aprende sobre desarrollo web

¿Qué es JavaScript?


Bienvenido al curso de JavaScript para principiantes de MDN. En este primer artículo vamos a conocer JavaScript desde un nivel muy general, contestando las preguntas ¿Qué es? y ¿Qué hace?, con el propósito de que te sientas a gusto al usar JavaScript.


Definición General


JavaScript es un lenguaje de programación que te permite realizar actividades complejas en una página web — cada vez más una página web hace más cosas que sólo mostrar información estática — como enseñar actualizaciones de contenido en el instante, interactuar con mapas, animaciones gráficas 2D/3D etc. — puedes estar seguro que JavaScript está implicado. Es la tercera capa del pastel de los estándares en las tecnologías para la página web, 2 de las cuales son (y), hablaremos de ellas más adelante con más detalle en otra una parte de nuestra Área de Aprendizaje.



  • es un lenguaje de marcado que usa la estructura para dar un sentido al contenido web, por ejemplo define párrafos, cabeceras, tablas, imágenes y vídeos en la página.

  • es un lenguaje de reglas en catarata que utilizamos para aplicar un estilo a nuestro contenido en HTML, por ejemplo colocando colores de fondo, fuentes y marginando nuestro contenido en múltiples columnas.

  • Es un lenguaje de programación que te deja crear contenido nuevo y dinámico, controlar ficheros de multimedia, crear imágenes animadas y muchas otras cosas más. (Aunque, no todo, pero es increíble lo que puedes llegar a hacer con tan sólo unas pocas líneas de código de JavaScript).


Las tres capas se complementan una con la otra. Vamos a agregar un simple texto a la etiqueta como ejemplo. Podemos usar HTML para dar estructura y propósito:



Agregamos CSS para hacer que se vea agradable:



y finalmente añadimos JavaScript para incorporar comportamiento dinámico:


Da click en el texto para ver qué sucede (también puedes encontrar la demostración en GitHub) ve elo!


JavaScript puede hacer muchas cosas más - Vamos a explorar con más detalles.


Entonces, ¿Qué es lo que realmente podemos hacer?


El núcleo de JavaScript consiste en características comunes de programación que te permiten hacer cosas como:



  • Almacenar valores útiles en variables. En el ejercicio anterior por ejemplo, preguntamos por un nuevo nombre a introducir para luego guardarlo en una variable llamada
    name.

  • Las operaciones escritas en formato de texto (Conocidas como "
    Strings" en lenguaje de programación). En el ejemplo anterior tomamos el conjunto "Player 1:" y lo adjuntamos a la variable
    namepara finalizar de crear el código, ejemplo: "Player 1: Chris".

  • Para hacer marchar el código como contestación a algunos acontecimientos que están ocurriendo en la página web. Empleamos un acontecimiento en nuestro ejemplo anterior llamado click para advertir cuando el botón es cliqueado para luego hacer correr el código que actualice la etiqueta de texto.

  • ¡Y muchas más cosas!


Hay algo aun más apasionante, no obstante es la funcionalidad construida por encima del núcleo del lenguaje de JavaScript. Llamada
Interfaz de programación en aplicaciones -
Application Programming Interfaces(
API's) proveyendo superpoderes para emplear en tú código JavaScript.


Los APIS son inserciones de líneas, incluso bloques gigantes de código listos para emplear que permiten a un desarrollador incorporarlo a programas que de cualquier otra forma podría ser difícil o bien incluso imposible de concluir. Así como las herramientas para construir una casa, es exactamente lo mismo para las cosas de programación – Es mucho más fácil tomar los paneles que estén cortados y atornillarlos para hacer un estante de libros, puesto que es más laborioso diseñarlo por ti, ir y localizar la madera correcta, cortarla del tamaño adecuado y lijarla, buscar los tornillos del tamaño correcto y acoplarla para hacer un anaquel de libros.


Generalmente los API's se dividen en dos categorías:




Los Navegadores APIs (Browser APIs)son construidos dentro de tu buscador web, y son capaces de exponer información desde la cercanía en base al entorno de tu computador, o bien hacer cosas complejas. Por ejemplo:



  • Elte deja manipular, crear, remover y cambiar códigos escritos en lenguaje HTML y CSS, incluso aplicando dinámicamente nuevos estilos a tu página web, etcétera Cada vez que aparezca un aviso (popup) en una página web, o bien nuevo contenido a mostrarse en ella, (Así como vimos en el ejemplo precedente de nuestro fácil demo) es tan sólo un caso, de lo que se puede hacer con la acción DOM.

  • Larestablece la información geográfica, Así es comopermite encontrar tu dirección e imprimirla en un mapa.

  • Lasy elAPI te permiten crear animaciones y gráficos en 2D y 3D. La gente está haciendo cosas increíbles utilizando estas tecnologías web – puedes ver losy.

  • , comoyte permite crear cosas verdaderamente interesantes, tanto como poner música y vídeo en una página web o bien grabar un vídeo desde tu cámara web y que otra persona pueda verla desde su computadora (Prueba nuestro ejerciciopara tener una idea).



Nota: Muchos de los tutoriales anteriores no funcionan en buscadores viejos – cuando practicamos, es buena idea usar un navegador actualizado, como Firefox, Chrome, Edge o bien Opera para hacer marchar el código, estima que necesitarás usar elen más detalle cuando llegues a la parte de entregar tu código desarrollado (Código real que clientes reales usaran).



APIs de Terceras personas,por determinado no son construidos en el navegador, y generalmente tienes que lograr su código y también información de alguna parte de la Web, por ejemplo:



  • Elpermite que hagas cosas como enseñar los últimos tuits de alguien en tu sitio.

  • Elpermite engastar mapas adaptados en tu sitio web y otro género de funcionalidades.



Nota: Estas APIs son avanzadas, y por lo tanto en este módulo no serán explicadas, puedes encontrar mucha más información sobre esto en nuestro.


¡Hay incluso muchas más APIs! no obstante, no te emociones muy rápido. Puesto que no tendrás la capacidad de edificar en tan sólo veinticuatro horas de estar estudiando JavaScript el siguiente Facebook, Instagram o Google Maps – Existen muchos conceptos básicos aún por ver. Y es por eso que estás aquí – ¡Así que sigamos adelante!


¿Qué es lo que JavaScript hace en tu página web?


En este apartado, en la actualidad comenzaremos a ver varias líneas de código, y mientras hacemos eso vamos explorando lo que hoy en día está pasando cuando haces funcionar tu código JavaScript en tu página Web.


Hagamos un breve recordatorio del historial de lo que pasa cuando cargas una página web en tu navegador (primero hablamos acerca de
en nuestro artículo). Cuando cargas una página Web en tu navegador, tu código (HTML, CSS y JavaScript) es leído dentro de un ambiente de ejecución (pestaña del navegador). Esto es como una fábrica que coge la materia prima (Las líneas de código) y lo presenta como el producto final (la página Web).



El lenguaje JavaScript es ejecutado por el motor del navegador de JavaScript, luego que el código HTML y CSS han sido juntados y congregados dentro de la página Web. Esto asegura que el estilo y la estructura de la página están en su sitio en el instante en que JavaScript comienza a ejecutarse.


Esto es algo buenísimo, algo muy común en el uso de JavaScript para alterar dinámicamente el código HTML y CSS, para que la interfaz de usuario sea actualizada, utilizando
DOMo el modelo de objeto de documento (como se mencionó anteriormente). Si al cargar JavaScript e intentar hacerlo funcionar antes que sea leído el código HTML y CSS, se verá perjudicado, ocurriendo fallos de programación.


Cada pestaña del navegador se considera como una cubeta en un divido separado para hacer funcionar el código (en términos técnicos las cubetas son llamadas “ambientes de ejecución”) – quiere decir que en la mayoría de los casos los códigos en cada pestaña funcionan totalmente separados, y el código en una pestaña no puede afectar de forma directa el código de otra pestaña, o bien en otro navegador. Esta es una buena medida de seguridad – si este no fuese el caso, entonces los piratas informáticos podrían estar alterando tu código para robar información de otro sitio web, y otras tantas cosas malas.



Nota: Existen formas para enviar código e información entre diferentes sitios web/pestañas de una forma segura, pero estas son técnicas avanzadas que no cubriremos en este curso.


JavaScript marcha con un orden


Cuando el navegador halla un bloque de JavaScript, por norma general lo corre en orden, de arriba hacia abajo. Esto significa que tienes que tener precaución en qué orden pones las cosas. Por poner un ejemplo, regresemos al bloque de JavaScript que vimos en nuestro primer ejemplo:


Aquí escogemos un texto del párrafo (línea 1), luego es adherido a un (oyente o escuchador) de eventos (línea 3) entonces cuando el párrafo es cliqueado, el bloque de código
updateName()empieza a marchar (línea cinco – 8). El código de bloque
updateName()(esta clase de código de bloque reusable son llamados “funciones”) interactúa con el usuario para consultar un nuevo nombre, y después lo inserta dentro del párrafo para actualizar lo que se esta visualizando.


Si tú cambias el orden de las primeras dos líneas de código, no funcionaría – de hecho, conseguirás un fallo de retorno en la consola del desarrollador del navegador –
TypeError: para is undefined. Esto quiere decir que el objeto
parano existe todavía, entonces no podremos añadir un (oyente o bien escuchador) de eventos.



Nota: Este es un error muy común – necesitas ser cuidadoso en tanto que el objeto de referencia en tu código debe existir antes de intentar algo con él.


El Interpretador entre el código compilado


Quizás debiste oír sobre los términos
interpretadory el
compiladoren contexto de programación, JavaScript es un lenguaje de interpretación – el código se hace marchar de arriba hacia abajo y el resultado de leerlo de este modo hace que inmediatamente responda. No debes transformar tu código en algo diferente antes de que el navegador lo haga por ti.


En otra mano los lenguajes compilados son transformados (compilado) antes que sean leídos por la computadora. Por servirnos de un ejemplo C/C++ son lenguajes congregados para compilarlos para luego ser leídos por la computadora.


Ambos accesos tienen diferentes ventajas, de los cuales no discutiremos en este punto.


El lado-del-servidor entre el código del-lado-del-cliente


Quizás también debiste percibir los términos
lado-del-servidory el código del
lado-del-cliente, especialmente en contexto de desarrollo web. El código del usuario es código que funciona en la computadora del usuario – cuando una página web es visualizada, la página del código del cliente del servicio es descargada, para entonces ser leída y mostrada en el navegador. En este módulo de JavaScript vamos a hablar explícitamente sobre el
lado-del-cliente.


Por otro lado el lado-del-servidor es leído por el servidor, entonces el resultado es descargado y mostrado en el navegador. Ejemplos del empleo popular del lenguaje web del lado-del-servidor incluye PHP, Python, Ruby y ASP.NET. ¡Y JavaScript! Este lenguaje también puede ser utilizado como un lenguaje de lado-del-servidor, por servirnos de un ejemplo en el popular ambiente de Node.js – puedes hallar más información sobre JavaScript del lado del servidor en nuestro tema.


Código dinámico frente a código estático


La palabra
dinámicoes utilizada para describir los dos lados-del-cliente del servicio en JavaScript, y lenguajes del lado-del-servidor. Es referido a la habilidad para actualizar lo visualizado de una página/app para mostrar contenido diferente en diferentes circunstancias, requiriendo nuevo contenido a producir. Por poner un ejemplo, subir archivos desde una base de datos, donde el lado-del-cliente de JavaScript produce dinámicamente nuevo contenido en el navegador del cliente del servicio, por poner un ejemplo, creando una nueva tabla en código HTML, introduciendo datos que son llamados desde un servidor propio, para luego visualizarlo en la tabla de la página web y mostrárselo al usuario, El significado es un tanto diferente entre los 2 contextos, pero teniendo relación, y aprovechando el trabajo mutuo entre (lado-del-servidor y lado-del-usuario).


Una página web sin actualización de contenido dinámico es llamada como
estática– en tanto que únicamente muestra exactamente el mismo contenido todo el tiempo.


¿Cómo añadir JavaScript a tu página web?


JavaScript es aplicado a tu página en código HTML de una forma similar al CSS. Donde el CSS emplea el elementopara aplicar hojas de estilos externas y la etiquetaes un elemento para aplicar hojas de estilos de forma interna al HTML, JavaScript solamente precisa de un solo amigo en el planeta del HTML - que es el elemento. Aprendamos cómo funciona esto.


JavaScript por dentro



  1. Primero que nada, haz una copia de nuestro fichero ejemplo. Guárdalo en algún sitio donde puedas encontrarlo.

  2. Abre el archivo en tu navegador y en tu editor de texto. Verás que el HTML creará una simple página web conteniendo un botón.

  3. Luego, ve a tu editor de texto y añade lo siguiente justo antes del cierre de la etiqueta
    </body>:
    <script> // JavaScript goes here</script>


  4. Ahora, añadiremos algo de JavaScript dentro de nuestra etiquetapara que la página haga algo más interesante – añade el siguiente código justo debajo de la línea de código "// JavaScript goes here":
    function createParagraph()  var para = document.createElement('p'); para.textContent = 'You clicked the button!'; document.body.appendChild(para);var buttons = document.querySelectorAll('button');for (var i = 0; i < buttons.length ; i++)  buttons[i].addEventListener('click', createParagraph);


  5. Guarda tu fichero y actualiza tu navegador – ahora deberías ver cuando das clic en el botón, que un nuevo párrafo es generado y posicionado debajo de él.



Nota: Si según lo que parece tu ejemplo no marcha, examina tu código punto por punto y asegúrate que todo lo hayas hecho bien, ¿verificaste si guardaste tu archivo con la extensión
.html? ¿Añadiste el tagjusto después del tag
</body>? ¿Introduciste el código JavaScript como se mostraba anteriormente?
JavaScript es sensitivo y exigente con mayúsculas y minúsculas, así que precisas introducir la sintaxis precisamente como se muestra, de otra manera no funcionará.


JavaScript Externo


Esto trabaja muy bien, pero, ¿qué pasa si queremos poner nuestro JavaScript en un fichero externo? Entonces exploremos esto ahora.



  1. Primero, crea un nuevo archivo en la misma dirección o lugar de tu archivo muestra de HTML. Llámalo
    script.js– asegúrate que lleve la extensión .js así es como es reconocido un archivo JavaScript.

  2. Siguiente, copia todo el código que has escrito previamente en el elementoy pégalo en el fichero .js y guárdalo.

  3. Ahora remplaza todo del código que está en el elementopor lo siguiente:
    <script src="script.js"></script>


  4. Guarda y refresca tu navegador, y ¡deberías de ver exactamente lo mismo! Realmente hiciste exactamente el mismo trabajo, mas ahora conseguimos que el código esté en un archivo externo. Generalmente esto es algo bueno en términos de organizar tu código y hacerlo reusable a través de varios ficheros HTML. Además los archivos HTML son fáciles de leer sin tantos pedazos de script por doquier.



Nota: Puedes ver esta versión en GitHub comoy().


Gestores de JavaScript en línea


A veces puedes apreciar que te encontraras con ciertas líneas de JavaScript en archivos HTML. Es posible que se vean algo semejante a esto:


Puedes intentar esta versión de nuestro demo abajo.


Este demo tiene exactamente la misma funcionalidad tanto como en las 2 secciones anteriores, excepto que el elementoincluye un supervisor de línea
onclickpara hacer marchar el código cuando el botón en presionado.



Por favor no hagas esto, de otra forma.Es una mala práctica contaminar tu HTML con JavaScript, y es ineficiente – Deberías de incluir el atributo
onclick="createParagraph()"en cada botón que desees para ser aplicado por JavaScript.


Usar los constructores de JavaScript permite seleccionar todos los botones empleando una sola instrucción. El código que utilizamos arriba sirve para este propósito viéndose así:


Esto puede verse un poco más grande que el atributo
onclickpero esto funcionará para todos los botones sin importar cuantos haya en la página, incluso cuando sean añadidos o removidos. JavaScript no precisa ser alterado.



Nota: Procura editar tu versión de
apply-javascript.htmly añade un tanto más de botones en el fichero. Cuando vuelvas a cargar la página, deberías apreciar que todos y cada uno de los botones crean un párrafo cuando son cliqueados. ¿Estupendo no?


Estrategias de carga de scripts


Hay una serie de inconvenientes relacionados con conseguir que los scripts se carguen en el momento conveniente. auditorias posicionamiento web madrid es tan simple como semeja! Un problema común es que todo el HTML de una página se carga en el orden en que aparece. Si utiliza JavaScript para manipular elementos de la página (o más precisamente, el), su código no funcionará si el JavaScript es cargado y analizado ya antes que el código HTML al que está procurando manipular.


En los ejemplos de código anteriores, en los ejemplos internos y externos el JavaScript se carga y ejecuta en la cabecera del documento, antes de que se analice el cuerpo HTML. Esto podría ocasionar un error, así que hemos utilizado algunas construcciones para evitarlo.


En el ejemplo interno, puede ver esta estructura alrededor del código:


Se trata de un receptor de acontecimientos, que escucha el evento "DOMContentLoaded" del navegador, lo que quiere decir que el cuerpo HTML está totalmente cargado y analizado. El JavaScript dentro de este bloque no se ejecutará hasta después de que se dispare ese acontecimiento, por ende se evita el error (más adelante en el curso).


En el ejemplo externo, usamos una función JavaScript más moderna para solucionar el problema, el atributo
async, que le indica al navegador que siga descargando el contenido HTML cuando se haya alcanzado el factor de la etiqueta
<script>.


En este caso, tanto el script como el HTML se cargarán simultáneamente y el código funcionará..



Nota: En el caso externo, no necesitábamos utilizar el acontecimiento
DOMContentLoadedporque el atributo
asyncnos resolvía el inconveniente. No usamos la solución de
asyncpara el ejemplo interno de JavaScript porque
asyncsólo marcha para scripts externos.


Una solución anticuada a este problema solía ser poner su elemento de script justo en la parte inferior del cuerpo (por servirnos de un ejemplo, inmediatamente antes de la etiqueta
</body>), de modo que se cargase después de que todo el HTML haya sido analizado. El inconveniente con esta solución (y la solución
DOMContentLoadedvista anteriormente) es que la carga/análisis del script está absolutamente bloqueada hasta el momento en que se haya cargado el DOM HTML. En sitios más grandes con mucho JavaScript, esto puede ocasionar un gran problema de desempeño, ralentizando su lugar. Esta es la razón por la que se agregó
asynca los navegadores!


async y defer


En realidad hay dos maneras de evitar el problema del script de bloqueo —
asyncy
defer. Veamos la diferencia entre estos dos.


Los scripts async descargarán el script sin bloquear la renderización de la página y lo ejecutarán tan pronto como el script finalice de descargarse. No se asegura que los scripts se ejecutarán en un orden específico, sólo que no impedirán que se muestre el resto de la página. Es mejor usar
asynccuando los scripts de la página se ejecutan independientemente uno del otro y no dependen de ningún otro script de la página.


Por ejemplo, si tiene los próximos elementos de script:


No puede confiar en el orden en que se cargarán los scripts.
jquery.jspuede cargar ya antes o bien después de
script2.jsy
script3.jsy si este es el caso, cualquier función en esos scripts que dependa de
jqueryproducirá un fallo porque
jqueryno se definirá en el momento en que se ejecute el script.



Deferejecutará los scripts en el orden en que aparecen en la página y los ejecutará tan pronto como el script y el contenido sean descargados:


Todos los scripts con el atributo
deferse cargarán en el orden en que aparecen en la página. Así que en el segundo ejemplo, podemos estar seguros de que
jquery.jsse cargará ya antes que
script2.jsy
script3.jsy que
script2.jsse cargará ya antes que
script3.js.


Para resumir:



  • Si sus scripts no necesitan aguardar para el análisis y pueden ejecutarse independientemente sin dependencias, entonces use
    async.

  • Si sus scripts precisan aguardar a ser analizados y dependen de otros scripts, cárguelos utilizando
    defery ponga sus elementos
    <script>en el orden pertinente en el que quiere que el navegador los ejecute.


Comentarios


Así como en código HTML y CSS, es optimización seo cuenca dentro de tu código de JavaScript que serán ignorados por el navegador, sencillamente existe para proveer instrucciones a tus colegas desarrolladores de como el código funciona (y para ti, por si regresas a tu código después de 6 meses y no recuerdas lo que hiciste). Los comentarios son muy útiles, deberías utilizarlos más frecuentemente, particularmente para grandes aplicaciones. He aquí dos tipos:



  • Comentarios de una sola línea escritos después de dos barras inclinadas (//), Ejemplo:
    // Soy un comentario


  • Comentarios de varias líneas escritos entre las cadenas /* y */, ejemplo:
    /* Yo tambíen soy un commentario*/



Entonces por ejemplo, podemos anotar nuestro último demo de JavaScript con comentarios como:


Resumen


Ahí vas, tus primeros pasos en el planeta de JavaScript, hemos comenzado únicamente con teoría, para comenzar a comprender por qué usamos JavaScript, y qué género de cosas puedes utilizar con él. En el camino viste unos cuantos ejemplos de código y aprendiste cómo JavaScript encaja con el resto del código de tu página web, entre otras cosas.


JavaScript puede que se vea un tanto desmoralizador de momento, pero no te preocupes – en este curso te vamos a llevar a través de pasos simples que harán que prosigas adelante. En el próximo artículo vamos a ir, consiguiendo un salto directo para construir tus propios ejemplos en JavaScript.​​​​​


En este módulo

Back to posts
This post has no comments - be the first one!

UNDER MAINTENANCE