- Notifications
You must be signed in to change notification settings - Fork230
Traducción del apartado Introducción de la Parte 1#4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Closed
Uh oh!
There was an error while loading.Please reload this page.
Closed
Changes fromall commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
132 changes: 66 additions & 66 deletions1-js/01-getting-started/1-intro/article.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -1,120 +1,120 @@ | ||||||||
| #Una introducción a JavaScript | ||||||||
| Veamos qué tiene de especialJavaScript,qué podemos lograr con él y qué otras tecnologías juegan bien con él. | ||||||||
| ##¿Qué es JavaScript? | ||||||||
| *JavaScript*fue creado inicialmente para *"dar vida a las paginas web"*. | ||||||||
| Los programas en este lenguaje se llaman *scripts*.Se pueden escribir directamente en el HTML de una páginaweby ejecutarse automáticamente a medida que se carga la página. | ||||||||
| Los scripts se proveen y ejecutan como texto plano. No necesitan una preparación especial o compilación para su ejecución. | ||||||||
| En este aspecto, JavaScriptes muy diferente de otro lenguaje llamado [Java](https://es.wikipedia.org/wiki/Java_(lenguaje_de_programación)). | ||||||||
| ```smart header="¿Por qué <u>Java</u>Script?" | ||||||||
| Cuando se creó JavaScript, inicialmente tenía otro nombre: "LiveScript".Pero Javaera muy popularen ese momento, por lo que se decidió que posicionar un nuevo lenguaje como un "hermano menor" de Javaayudaría. | ||||||||
| Pero a medida que evolucionaba, JavaScriptse convirtió en un lenguaje totalmente independiente con su propia especificación llamada[ECMAScript](http://es.wikipedia.org/wiki/ECMAScript),y ahoranotiene ninguna relación con Java. | ||||||||
| ``` | ||||||||
| Hoy en día, JavaScriptpuede ejecutarse no solo en el navegador, sino también en el servidor, o en cualquier dispositivo que tenga un programa especial denominado [motor de JavaScript](https://es.wikipedia.org/wiki/Intérprete_de_JavaScript). | ||||||||
| El navegador tiene un motor incorporado llamado "máquina virtualde JavaScript". | ||||||||
| Diferentes motores tienen diferentes "nombres".Por ejemplo: | ||||||||
| - [V8](https://es.wikipedia.org/wiki/Chrome_V8) --en Chromey Opera. | ||||||||
| - [SpiderMonkey](https://es.wikipedia.org/wiki/SpiderMonkey) --en Firefox. | ||||||||
| - ... Hay otros nombres como "Trident"y "Chakra"para diferentes versiones de IE, "ChakraCore"para Microsoft Edge, "Nitro"y "SquirrelFish"para Safari, etc. | ||||||||
| Es bueno recordar los nombres anteriores porque se usan en artículos de programación. Los usaremos también. Por ejemplo, si "una característica Xes compatible con V8",entonces probablemente funcione enChromey Opera. | ||||||||
| ```smart header="¿Cómo funcionan los motores?" | ||||||||
| Los motores son complicados. Pero los fundamentos son fáciles. | ||||||||
| 1.El motor (incrustado si es un navegador) lee ("analiza")el script. | ||||||||
| 2.Luego convierte ("compila")el scriptal lenguaje máquina. | ||||||||
| 3.Y luego ejecuta el código máquina, bastante rápido. | ||||||||
| El motor aplica optimizaciones en cada paso del proceso. Incluso observa el script compilado a medida que se ejecuta, analiza los datos que fluyen a través de él y aplica optimizaciones al código de la máquina basándose en ese conocimiento. Losscriptsse ejecutan bastante rápido. | ||||||||
| ``` | ||||||||
| ##¿Qué puede hacer JavaScripten el navegador? | ||||||||
| El JavaScriptmoderno es un lenguaje de programación "seguro". No proporciona acceso de bajo nivel a la memoria o al CPU,ya que se creó inicialmente para los navegadores que no lo requieren. | ||||||||
| Las capacidades deJavascript dependen en gran medida del entorno en el que se ejecuta. Por ejemplo, [Node.JS](https://es.wikipedia.org/wiki/Node.js)admite funciones que permiten aJavaScriptleer/escribir archivos arbitrarios, realizar solicitudes de red, etc. | ||||||||
| En el navegadorJavaScriptpuede 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,JavaScripten el navegador es capaz de: | ||||||||
| -Agregar un nuevoHTMLa la página, cambiar el contenido existente, modificar los estilos. | ||||||||
| -Reaccionar a las acciones del usuario, como clics del ratón, movimientos del puntero, presión de teclas. | ||||||||
| -Envíar solicitudes a través de la red a servidores remotos, descargar y cargar archivos (las llamadas tecnologías[AJAX](https://es.wikipedia.org/wiki/AJAX) y [COMET](https://es.wikipedia.org/wiki/Comet)). | ||||||||
| -Obtener y configurar cookies,hacer preguntas al visitante, mostrar mensajes. | ||||||||
| -Recordar datos del lado del cliente ("local storage"). | ||||||||
| ##¿Qué NO PUEDE hacerJavaScripten el navegador? | ||||||||
| Las capacidades de JavaScript en el navegador están limitadas para la seguridad del usuario. El objetivo es evitar que una página web maliciosa acceda a información privada o dañe los datos del usuario. | ||||||||
| Ejemplos de tales restricciones incluyen: | ||||||||
| - JavaScripten 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 es posible si el usuario realiza ciertas acciones, como "soltar" un archivo en una ventana del navegador o seleccionarlo mediante una etiqueta`<input>`. | ||||||||
| Hay formas de interactuar con la cámara/micrófono y otros dispositivos, pero requieren el permiso explícito de un usuario. Por lo tanto, una página habilitada para JavaScript no puede acceder a una cámara, observar el entorno y enviar la información a la [NSA](https://es.wikipedia.org/wiki/NASA). | ||||||||
| -Diferentes pestañas/ventanas generalmente no se conocen entre sí. A veces lo hacen, por ejemplo, cuando una ventana usa JavaScriptpara abrir otra. Pero incluso en este caso, elJavaScriptde una página no puede acceder a la otra si provienen de sitios diferentes (de un dominio, protocolo o puerto diferente). | ||||||||
| Esto se llama "Política del mismo origen".Para evitar eso, *ambas páginas* deben contener un código JavaScriptespecial que maneje el intercambio de datos. | ||||||||
| Esta limitación es, nuevamente, para la seguridad del usuario. Una página dehttp://algunsitio.com que un usuario ha abierto no debe poder acceder a otra pestaña del navegador con la URL http://gmail.com y robar información desde allí. | ||||||||
| - JavaScriptpuede comunicarse con facilidad, por medio de la red, al servidor de donde proviene la página actual. Pero su capacidad para recibir datos de otros sitios/dominios está restringido. 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. | ||||||||
|  | ||||||||
| Tales límites no existen cuandoJavaScriptse usa fuera del navegador, por ejemplo, en un servidor. Los navegadores modernos también permiten complementos/extensiones que pueden solicitar permisos extendidos. | ||||||||
| ##¿Qué hace queJavaScriptsea único? | ||||||||
| Hay al menos *tres* grandes cosas sobre #"f9722fc4e3dc0d9e6b776b4ab90c712216ec09b0c33bd3d0441ae6a476f17830"> | ||||||||
| ```compare | ||||||||
| +Integración completa con HTML/CSS. | ||||||||
| +Las cosas simples se hacen de manera simple. | ||||||||
| +Soporte por todos los principales navegadores y está habilitado por defecto. | ||||||||
| ``` | ||||||||
| Javascriptes la única tecnología del navegador que combina estas tres cosas. | ||||||||
| Eso es lo que hace queJavaScriptsea único. Por eso es la herramienta más extendida para crearinterfaces de navegador. | ||||||||
| Al planear aprender una nueva tecnología, es beneficioso revisar sus perspectivas. Así que vamos a pasar a las tendencias modernas que lo afectan, incluyendo nuevos lenguajes y capacidades del navegador. | ||||||||
| ##Lenguajes "sobre" JavaScript | ||||||||
| La sintaxis de JavaScriptno se adapta a todas las necesidades. Diferentes personas quieren características diferentes. | ||||||||
| Eso es de esperarse, porque los proyectos y los requisitos son diferentes para cada persona. | ||||||||
| Hace poco apareció una gran cantidad de nuevos lenguajes, que se *transpilan* (convierten) a JavaScriptantes de ejecutarse 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 lenguaje y convertirlo automáticamente "bajo el capó". | ||||||||
| Ejemplos de tales lenguajes: | ||||||||
| - [CoffeeScript](http://coffeescript.org/)es un "azúcar sintáctico" para JavaScript.Introduce una sintaxis más corta, lo que nos permite escribir códigos más claros y precisos. Por lo general, a los desarrolladores de Ruby les agrada. | ||||||||
| - [TypeScript](http://www.typescriptlang.org/)se concentra en agregar "tipos de datos estrictos" para simplificar el desarrollo y el soporte de sistemas complejos. Está desarrollado por Microsoft. | ||||||||
| - [Dart](https://www.dartlang.org/)es un lenguaje independiente que tiene su propio motor que se ejecuta en entornos sin navegador (como las aplicaciones móviles).Inicialmente, fue ofrecido porGooglecomo un reemplazo de JavaScript,pero a partir de ahora, los navegadores requieren que sea transpilado a JavaScriptcomo los anteriores. | ||||||||
| Hay más. Por supuesto, incluso si usamos uno de estos lenguajes, también deberíamos conocerJavaScriptpara entender realmente lo que estamos haciendo. | ||||||||
| ##Resumen | ||||||||
| - JavaScriptse creó inicialmente como un lenguaje solo para el navegador, pero ahora también se usa en muchos otros entornos. | ||||||||
| -Hoy en día, JavaScripttiene una posición única como el lenguaje de navegador más ampliamente adoptado con integración completa con HTML/CSS. | ||||||||
| -Hay muchos lenguajes que se "transpilan" a JavaScripty proporcionan ciertas funcionalidades. Se recomienda echarles un vistazo, al menos brevemente, después de dominar JavaScript. |
Oops, something went wrong.
Uh oh!
There was an error while loading.Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.