You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/1-intro/article.md
+28-29Lines changed: 28 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,49 +4,48 @@ Veamos que tiene de especial JavaScript, que podemos lograr con este lenguaje y
4
4
5
5
## ¿Qué es JavaScript?
6
6
7
-
*JavaScript* Fue creado para *"dar vida a la paginas web"*.
7
+
_JavaScript_ Fue creado para _"dar vida a la páginas web"_.
8
8
9
-
Los programas en este lenguaje son llamados *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.
9
+
Los programas en este lenguaje son llamados _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.
10
10
11
11
Los scripts se proporcionan y ejecutan como texto plano. No necesitan preparación especial o compilación para correr.
12
12
13
-
En este aspecto, JavaScript es muy diferente de otro lenguaje llamado [Java]
En este aspecto, JavaScript es muy diferente de otro lenguaje llamado [Java](<https://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)>).
15
14
16
15
```smart header="¿Por qué <u>Java</u>Script?"
17
-
Cuando JavaScript fue creado, inicialmente tenía otro nombre: “LiveScript”. Pero Java era muy popular en ese momento, así que se decidió que el posicionamiento de un nuevo lenguaje como un “Hermano menor” de Java ayudaría.
16
+
Cuando JavaScript fue creado, inicialmente tenía otro nombre: "LiveScript". Pero Java era muy popular en ese momento, así que se decidió que el posicionamiento de un nuevo lenguaje como un "Hermano menor" de Java ayudaría.
18
17
19
18
Pero a medida que evolucionaba, JavaScript se convirtió en un lenguaje completamente independiente con su propia especificación llamada [ECMAScript] (https://es.wikipedia.org/wiki/ECMAScript), y ahora no tiene para nada relación con Java.
20
19
```
21
20
22
21
Hoy, JavaScript puede ejecutarse no solo en los navegadores, sino también en servidores o incluso en cualquier dispositivo que cuente con un programa especial llamado [El motor o intérprete de JavaScript](https://es.wikipedia.org/wiki/Int%C3%A9rprete_de_JavaScript).
23
22
24
-
El navegador tiene un motor embebido a veces llamado una "Máquina virtual de JavaScript”.
23
+
El navegador tiene un motor embebido a veces llamado una "Máquina virtual de JavaScript".
25
24
26
25
Diferentes motores tienen diferentes "nombres en clave". Por ejemplo:
27
26
28
27
-[V8](https://es.wikipedia.org/wiki/Chrome_V8) -- en Chrome y Opera.
29
28
-[SpiderMonkey](https://es.wikipedia.org/wiki/SpiderMonkey) -- en Firefox.
30
-
- ...Existen otros nombres en clave como “Trident” and “Chakra” para diferentes versiones de IE (Internet Explorer), “ChakraCore” para Microsoft Edge, “Nitro” y "SquirrelFish" para Safari, etc.
29
+
- ...Existen otros nombres en clave como "Trident" and "Chakra" para diferentes versiones de IE (Internet Explorer), "ChakraCore" para Microsoft Edge, "Nitro" y "SquirrelFish" para Safari, etc.
31
30
32
-
Los términos anteriores es bueno recordarlos porque son usados en artículos para desarrolladores en internet. También los usaremos. Por ejemplo, si “la característica X es soportada por V8”, entonces probablemente funciona en Chrome y Opera.
31
+
Los términos anteriores es bueno recordarlos porque son usados en artículos para desarrolladores en internet. También los usaremos. Por ejemplo, si "la característica X es soportada por V8", entonces probablemente funciona en Chrome y Opera.
33
32
34
33
```smart header="¿Como trabajan los motores?"
35
34
36
35
Los motores son complicados, pero los fundamentos son fáciles.
37
36
38
-
1.- El motor (embebido si es un navegador) lee (“analiza”) el script.
39
-
2.- Entonces convierte (“compila”) el script a lenguaje máquina.
37
+
1.- El motor (embebido si es un navegador) lee ("analiza") el script.
38
+
2.- Entonces convierte ("compila") el script a lenguaje máquina.
40
39
3.- y por último el código maquina se ejecuta muy rápido.
41
40
42
-
El motor aplica optimizaciones en cada paso del proceso. Incluso observa como el script compilado se ejecuta, analiza los datos que fluyen a través de él y aplica optimizaciones al código maquina basadas en ese conocimiento. Cuando está terminado, los scripts se ejecutan bastante rápido.
41
+
El motor aplica optimizaciones en cada paso del proceso. Incluso observa como el script compilado se ejecuta, analiza los datos que fluyen a través de él y aplica optimizaciones al código maquina basadas en ese conocimiento. Cuando está terminado, los scripts se ejecutan bastante rápido.
43
42
```
44
43
45
44
## ¿Qué puede hacer JavaScript en el navegador?
46
45
47
46
JavaScript moderno es un lenguaje de programación "seguro". No proporciona acceso de bajo nivel a la memoria o la CPU (UCP), ya que se creó inicialmente para los navegadores los cuales no lo requieren.
48
47
49
-
Las capacidades de JavaScript dependen en gran medida en el entorno en que se ejecuta. Por ejemplo, [Node.JS (https://es.wikipedia.org/wiki/Node.js) Soporta funciones que permiten a JavaScript leer y escribir archivos arbitrariamente, realizar solicitudes de red, etc.
48
+
Las capacidades de JavaScript dependen en gran medida en el entorno en que se ejecuta. Por ejemplo, [Node.JS (https://es.wikipedia.org/wiki/Node.js) Soporta funciones que permiten a JavaScript leer y escribir archivos arbitrariamente, realizar solicitudes de red, etc.
50
49
51
50
En el navegador JavaScript puede realizar cualquier cosa relacionada con la manipulación de una página web, interacción con el usuario y el servidor web.
52
51
@@ -56,7 +55,7 @@ Por ejemplo, en el navegador JavaScript es capaz de:
56
55
- Reaccionar a las acciones del usuario, ejecutarse con los clics del ratón, movimientos del puntero y al oprimir teclas.
57
56
- Enviar solicitudes de red a servidores remotos, descargar y cargar archivos (Tecnologías llamadas [AJAX](https://es.wikipedia.org/wiki/AJAX) y [COMET](https://es.wikipedia.org/wiki/Comet)).
58
57
- Obtener y configurar cookies, hacer preguntar al visitante y mostrar mensajes.
59
-
- Recordar datos en el lado del cliente con el almacenamiento local (“local storage”).
58
+
- Recordar datos en el lado del cliente con el almacenamiento local ("local storage").
60
59
61
60
## ¿Qué no puede hacer JavaScript en el navegador?
62
61
@@ -66,58 +65,58 @@ Ejemplos de tales restricciones incluyen:
66
65
67
66
- JavaScript en el navegador no puede leer y escribir arbitrariamente archivos en el disco duro, copiarlos o ejecutar programas. No tiene acceso directo a funciones del Sistema operativo (OS).
68
67
69
-
Los navegadores mas modernos le permiten trabajar con archivos, pero el acceso es limitado y solo permitido si el usuario realiza ciertas acciones, como "arrastrar" un archivo a la ventana del navegador o seleccionarlo por medio de una etiqueta `<input`>.
68
+
Los navegadores mas modernos le permiten trabajar con archivos, pero el acceso es limitado y solo permitido si el usuario realiza ciertas acciones, como "arrastrar" un archivo a la ventana del navegador o seleccionarlo por medio de una etiqueta `<input`>.
69
+
70
+
Existen maneras de interactuar con la cámara, micrófono y otros dispositivos, pero eso requiere el permiso explicito del usuario. Por lo tanto, una página habilitada para JavaScript no puede habilitar una cámara web para observar el entorno y enviar la información a la [NSA](https://es.wikipedia.org/wiki/Agencia_de_Seguridad_Nacional).
70
71
71
-
Existen maneras de interactuar con la cámara, micrófono y otros dispositivos, pero eso requiere el permiso explicito del usuario. Por lo tanto, una página habilitada para JavaScript no puede habilitar una cámara web para observar el entorno y enviar la información a la [NSA](https://es.wikipedia.org/wiki/Agencia_de_Seguridad_Nacional).
72
-
73
72
- Diferentes pestañas y ventanas generalmente no se conocen entre sí. A veces si lo hacen, por ejemplo, cuando una ventana usa JavaScript para abrir otra. Pero incluso en este caso, JavaScript no puede acceder a la otra si provienen de diferentes sitios. (De diferente dominio, protocolo o puerto).
74
73
75
-
Esto es conocido como “política del mismo origen” (“Same Origin Policy”). Para evitar eso, ambas paginas deben contener código especial de JavaScript que permita manejar el intercambio de datos.
74
+
Esto es conocido como "política del mismo origen" ("Same Origin Policy"). Para evitar eso, ambas páginas deben contener código especial de JavaScript que permita manejar el intercambio de datos.
75
+
76
+
Esta limitación es, de nuevo, para la seguridad del usuario. Una página de `http://anysite.com` la cual el usuario ha abierto no debe ser capaz de acceder a otra pestaña del navegador con la URL `http://gmail.com` y robar información de esta otra página.
76
77
77
-
Esta limitación es, de nuevo, para la seguridad del usuario. Una pagina de `http://anysite.com` la cual el usuario ha abierto no debe ser capaz de acceder a otra pestaña del navegador con la URL `http://gmail.com` y robar información de esta otra página.
78
-
79
-
- JavaScript puede fácilmente comunicarse a través de la red con el servidor de donde esta pagina proviene. Pero su capacidad para recibir información de otros sitios y dominios esta bloqueada. Aunque sea posible, esto requiere un acuerdo explícito (expresado en los encabezados HTTP) desde el sitio remoto. Una vez más, esto es una limitación de seguridad.
78
+
- JavaScript puede fácilmente comunicarse a través de la red con el servidor de donde esta página proviene. Pero su capacidad para recibir información de otros sitios y dominios esta bloqueada. Aunque sea posible, esto requiere un acuerdo explícito (expresado en los encabezados HTTP) desde el sitio remoto. Una vez más, esto es una limitación de seguridad.
80
79
81
80

82
81
83
82
Tales limitaciones no existen si JavaScript es usado fuera del navegador, por ejemplo, en un servidor. Los navegadores modernos también permiten complementos y extensiones que pueden preguntar por permisos extendidos.
84
83
85
84
## ¿Qué hace a JavaScript único?
86
85
87
-
Existen al menos *tres* geniales cosas acerca de JavaScript:
86
+
Existen al menos _tres_ geniales cosas acerca de JavaScript:
88
87
89
88
```compare
90
89
+ Completa integración con HTML y CSS..
91
90
+ Las cosas simples se hacen simplemente.
92
91
+ Soportado por la mayoría de los navegadores y habilitado por defecto.
93
92
```
93
+
94
94
JavaScript es la única tecnología de los navegadores que combina estas tres cosas.
95
95
96
96
Eso es lo que hace a JavaScript único. Eso es el porqué es la herramienta mas extendida para crear interfaces de navegador.
97
97
98
98
Al planificar aprender una nueva tecnología, es beneficioso revisar sus perspectivas. Así que vamos a movernos a las tendencias modernas que lo afectan, incluyendo nuevos lenguajes y capacidades del navegador.
99
99
100
+
## Lenguajes "por arriba de" JavaScript
100
101
101
-
## Lenguajes "por arriva de" JavaScript
102
-
103
-
La sintaxis de JavaScript no ajusta para las necesidades de todos. Personas diferentes quieren diferentes características.
102
+
La sintaxis de JavaScript no se ajusta para las necesidades de todos. Personas diferentes quieren diferentes características.
104
103
105
104
Eso es de esperarse, porque los proyectos y requerimientos son diferentes para cada persona.
106
105
107
-
Así que recientemente a aparecido una abundancia de nevos lenguajes, los cuales son *Convertidos* / *Transpilados* (transpiled) a JavaScript antes de ser ejecutados en el navegador.
106
+
Así que recientemente a aparecido una abundancia de nuevos lenguajes, los cuales son _Convertidos_ / _Transpilados_ (transpiled) a JavaScript antes de ser ejecutados en el navegador.
108
107
109
108
Las herramientas modernas hacen la conversión (Transpilation) muy rápido y transparente, permitiendo a los desarrolladores codificar en otros lenguajes y convertirlo automáticamente detrás de escena.
110
109
111
110
Ejemplos de tales lenguajes:
112
111
113
-
-[CoffeeScript](http://coffeescript.org/) Es una “sintaxis azucarada”[syntactic sugar](https://es.wikipedia.org/wiki/Az%C3%BAcar_sint%C3%A1ctico) para JavaScript. Introduce una sintaxis corta, permitiéndonos escribir un código mas claro y preciso. Usualmente desarrolladores de Ruby prefieren esto.
114
-
-[TypeScript](http://www.typescriptlang.org/) se concentra en agregar “tipado estricto” (“strict data typing”) para simplificar el desarrollo y soporte de sistemas complejos. Es desarrollado por Microsoft.
112
+
-[CoffeeScript](http://coffeescript.org/) Es una "sintaxis azucarada"[syntactic sugar](https://es.wikipedia.org/wiki/Az%C3%BAcar_sint%C3%A1ctico) para JavaScript. Introduce una sintaxis corta, permitiéndonos escribir un código mas claro y preciso. Usualmente desarrolladores de Ruby prefieren este lenguaje.
113
+
-[TypeScript](http://www.typescriptlang.org/) se concentra en agregar "tipado estricto" ("strict data typing") para simplificar el desarrollo y soporte de sistemas complejos. Es desarrollado por Microsoft.
115
114
-[Dart](https://www.dartlang.org/) es un lenguaje independiente que tiene su propio motor que corre en entornos que no son los navegadores (como aplicaciones móviles). Fue inicialmente ofrecido por Google como un remplazo para JavaScript, pero a partir de ahora, los navegadores requieren que este sea convertido (transpiled) a JavaScript igual que los anteriores.
116
115
117
116
Hay mas. Por supuesto, incluso si nosotros usamos alguno de estos lenguajes, deberíamos conocer también JavaScript para realmente entender que está pasando.
118
117
119
118
## Resumen
120
119
121
-
-JaJavaScript fue inicialmente creado como un lenguaje solo para el navegador, pero ahora es usado también en muchos otros entornos.
120
+
-JavaScript fue inicialmente creado como un lenguaje solo para el navegador, pero ahora es usado también en muchos otros entornos.
122
121
- Hoy en día, JavaScript tiene una posición única como el lenguaje más extendido y adoptado de navegador, con una integración completa con HTML y CSS.
123
-
- Existen muchos lenguajes que se convierten “transpiled” a JavaScript y aportan ciertas características. Es recomendable echarles un vistazo, al menos brevemente, después de dominar JavaScript.
122
+
- Existen muchos lenguajes que se convierten "transpiled" a JavaScript y aportan ciertas características. Es recomendable echarles un vistazo, al menos brevemente, después de dominar JavaScript.
0 commit comments