A día de hoy quizás sea menos, pero tienes que tener en cuenta lo siguiente. Tienes que tener en cuenta que los navegadores son de marcas diferentes. Eso sí está claro, ¿verdad? Quiero decir, Mozilla tiene su navegador, el Firefox. Y Chrome, no me voy a extender mucho, y Chrome tiene su navegador. Bien. Pero los dos, con los dos ves páginas web. Y a su vez, con los dos, manejas Javascript. ¿De acuerdo? Pero son de casas diferentes, entonces tienen que ponerse de acuerdo de alguna manera. ¿Y qué es lo que ocurría antes? Que el Javascript que manejaba un navegador y el Javascript que manejaba otro navegador tenían sutiles diferencias. No quiero decirte grandes diferencias. Pero había cositas que aquí trabajaban y aquí no. Quiero decir, el Javascript... Va mejorando. Es decir, no es estático. Van saliendo mejoras al lenguaje, ¿de acuerdo? Entonces, lo que ocurrió fue que con la creación del Javascript se sentó dogmáticamente cómo tenía que ser ese lenguaje de programación. Entonces, ahora vemos una pescadilla al revés. ¿Qué es? Cuando tú vas a un navegador, dices... Este navegador ejecuta Javascript de la versión tal de ECMAScript. ¿De acuerdo? O sea, cumple con el ECMAScript 6. Entonces, para tú, como eres un desarrollador, eso sí te interesa. Porque tú dices, yo voy a hacer ahora un aplicativo y lo voy a lanzar. Esto va a ser de cara al público y quiero que trabaje en el máximo número de navegadores posible. Entonces, dices, bueno, pues de tal versión para arriba. Pues tú vas al navegador, vas al Firefox, vas al Chrome y miras a ver cuál es la última versión que tienen de ECMAScript. Entonces, tú desarrollas acorde a eso. No sé si ahora ya lo ves un poco más claro. Sí, la verdad que sí. Gracias. De verdad, no me digáis que sí porque... Sí, sí. Digamos que es como... Yo lo entiendo como si fuese como un intérprete. Y cada... No, no, no. Cada día... Cada navegador tiene una especie de, digamos, de versión de Javascript. No exactamente, pero van por ahí los tiros. Vamos a ver, cada navegador tiene su motor que interpreta Javascript. ¿Vale? Su motor... Y eso es el ECMAScript, el motor de interpretación del... No, no, no. No, el ECMAScript es una norma. Cumple con esa norma. Vale. Cumple con esa normativa, ¿de acuerdo? De acuerdo. ¿Vale? A ver, no sé, a lo mejor te doy un ejemplo. No sé. En el mundo de la automoción, ¿de acuerdo? Habrán miles de marcas o cientos de marcas de ruedas. Pero tienen que cumplir una norma porque si no, no entran dentro del chasis, dentro de... ¿De acuerdo? Entonces, esa norma que cumplen, pues es el ECMAScript. Es decir, yo voy a... Yo digo... Mira, yo voy a interpretar el Javascript que cumpla con esta norma. Dice Chrome. Y dice Firefox. Yo voy a... Pues entonces cumplen con una norma porque si no, cada uno evolucionaría de una manera que es lo que ocurría antes. Entonces tú llegarías y dirías, tengo una función aquí que es map y me va en Chrome y no me va en Firefox. ¿Y cómo puede ser eso? Pues porque son dos Javascript diferentes. Y entonces lo que han hecho es... Van a cumplir esa especificación. ¿De acuerdo? Entonces, para eso... Para eso... Pues mira, te voy a poner un enlace. Os voy a poner un enlace que es interesante. Bien. Bueno, no. Este enlace no. Porque me has dicho una cosa que... Ahora te la voy a matizar. Que es... ¿Estáis pensando en el Javascript para la web? ¿Y nosotros vamos a manejar el Javascript? ¿Te vas a complicar menos? Para el servidor. ¿Correcto? Y vamos a manejar el Javascript en el servidor Node.js. Entonces, solo nos tenemos que preocupar de la versión de Node.js que tenemos implementada y que Maxscript ejecuta. ¿De acuerdo? O interpreta. Y compila a la vez. Entonces, en los navegadores sí que vas a tener más problemas porque van evolucionando y sobre todo porque después quieres trabajar para plataformas. Y en las plataformas móviles, me refiero cuando utilices Javascript, y te pasa lo mismo con los navegadores de las plataformas móviles. ¿De acuerdo? Entonces, una forma de hacerlo es la siguiente. Os hablé de la página de Mozilla. A ver, no es la única. Vamos a ver, por ejemplo. Voy a poner... Vamos a ver la... Vamos a ver. Si yo busco la función de map y la encuentro... En Mozilla, cualquier función o cualquier elemento del lenguaje. Me voy al final de la página. Hay más maneras de ver esto. Pero fíjate lo que te pone aquí. No sé si lo estáis viendo. ¿Lo estáis viendo? ¿Compatibilidad con navegadores? Sí, sí, lo estoy viendo. Ah, vale, vale. Pues que no sé si tenemos feedback hoy. Bien, entonces he buscado una función... Una función... Y no tengo muy claro si me va a ir bien en el navegador o no. Y te dice... Fíjate. Mira, sí, sí, sí, pero en el Firefox a partir de esa versión y en el Explorer a partir de la nueva. ¿De acuerdo? Vale. Entonces ahí lo tienes claro. ¿Qué ocurre? Que si tú te vas a un Javascript básico, o sea, quiero decir, hoy vamos a ver bastante Javascript. Si tú vas a ver un Switch, un EVE, un Firefox, las funciones básicas, todo eso del lenguaje es lo mismo. Quiero decir, no difieren tanto. El problema es cuando viene una mejora. Viene una mejora, entonces esa mejora tarda en implementarla los navegadores. Y el otro día os hablaba un poco más profundamente de este tema. No me refería tanto a navegadores, sino que os decía, mira, Chrome tiene un motor dentro que se llama el motor V8. Pues ese es el intérprete que utiliza. Y ese V8 lo tenemos, además en el navegador Chrome, está en otros navegadores, en otras herramientas también implementado. Con lo cual, todo lo que V8 entienda, perfecto. ¿Qué ocurre? Que Mozilla utiliza el GECO. Firefox utiliza el GECO. Entonces eso lo vas viendo un poquito. Esto lo tenemos claro un poquito. Fijaros, aquí arriba me dice, mira, ¿de dónde viene? Pues me dice de la especificación el 5.1. Del 2015 es estándar y en cambio en la anterior es draft. ¿Esto qué significa? Esto lo veremos algún día que son, bueno, algún día quiero decir un día del curso porque son muchas cosas a la vez. Entonces tengo que ir repartiendo un poquito. ¿Qué es el versionado? Cuando tú sacas una versión de algo, eso lo tenéis claro, por ejemplo, en los sistemas operativos, versión 7, 8 o la que sea, ¿no? Pues ahora sois programadores y vais a versionar, también. Bueno, pues las herramientas que tenemos aquí de programación, los las funciones de programación también están versionadas. Entonces te dice, oye, mira esto que estás viendo aquí en este Mac script no existía o estaba en versión draft borrador y después ya pasó a producción. O sea, vale, entonces esas cosas, bueno, las vamos a ir viendo y os comentaba que es más fácil entre comillas ver la compatibilidad, aunque esto es para guardar un rollo, para no de aquí podéis ver. ¿Cómo está el estado a grandes rasgos del javascript? En la columna de la izquierda buscas la función que quieres saber en qué estado está. Y. En la horizontal. Te va diciendo por versiones de no de cómo está. No, obviamente ya lo entendéis, no el verde es ok y el rojo es que no. Y no sé, vamos a buscar algo que esté bastante claro que es aquí te dice, mira si quieres hacer un for aunque esto lo mejor explicaba dentro de un ratillo, pero bueno ya como como y la con otro si quieres hacer un for con unos arrays bien si estás en la versión dieciséis no tienes problema, vale, tienes presión no problema en ninguna. A lo mejor si buscamos algún rojillo por ahí pues entenderemos mejor las cosas quizás hacia atrás. No, pero de responde, te dice. No, si tienes la versión seis diecisiete de no no te va a funcionar. Si utilizas ese operador eso lo entendéis vale entonces la continuación estoy seguro que que alguien está pensando por ahí y si no pues me hace falta poder explicarlo vale este Pedro no. Qué qué piensa Pedro que voy a trabajar con la versión seis pudiendo trabajar con la versión 16. Vale, ¿qué ocurre? Pues ocurre, darle una vuelta a eso, que si os la lanzáis al plano laboral, tú vas a desarrollar, a lo mejor desarrollas para internet puro y duro, pero a lo mejor también desarrollas para una intranet. Entiendo que el término intranet ya lo habéis tocado, que es una internet a nivel local, local no físicamente, sino local dentro de, por ejemplo, una corporación. Imaginémonos una empresa que tiene mil equipos y por la razón que sea, esos mil equipos, sus servidores no pueden correr más que la versión, estoy hablando muy hipotético, más que la versión 6 de Node por lo que sea, porque están trabajando con unos mini ordenadores o por la razón que sea. Pues tendrías que acoplarte a desarrollar para ese Node. No es lo común, pero igual que he supuesto un caso exagerado, que es comparar la 16 con la 6, cuando vayáis hilando más fino, que eso os puede ocurrir. Quiero decir, no tiréis siempre al final de todo, estar con las intermedias, ¿vale? Entonces tenéis que ver también qué versión tenéis y todo esto.