Javascript

JavaScript (embrivíu comúnmente JS) ye un llinguaxe de programación interpretáu, dialeutu del estándar ECMAScript.

Defínese como Programación empobinada a oxetos empobináu a oxetos, Programación basada en prototipos basáu en prototipos, imperativu, sele tipado y dinámicu.

Ficha de softwareJavaScript
Javascript
Javascript
Estensión de ficheru .js
Tipu de MIME text/javascript application/x-ecmascript application/x-javascript text/javascript1.0 text/javascript1.1 text/javascript1.2 text/javascript1.4 text/javascript1.3 text/javascript1.5 text/livescript text/x-ecmascript text/x-javascript
Versión inicial mayu 1996
Última versión ECMAScript 2023 (versión estable (es) Traducir, xunu 2023)
ECMAScript 2025 (pre-release version (en) Traducir, 27 marzu 2024)
Tipu lenguaje de script (es) Traducir, lenguaje de programación basado en prototipos (es) Traducir, llinguaxe de programación imperativu, llinguaxe de programación funcional, llinguaxe de programación dirixíu por eventos, plataforma informática, llinguaxe interpretáu, llinguaxe de programación multiparadigma, llinguaxe de programación, strict programming language (en) Traducir y lenguaje de programación de alto nivel (es) Traducir
Orixe del nome Java
Más información
Sitiu web Web oficial
Etiqueta de Stack Exchange Stack Exchange
Cambiar los datos en Wikidata

Utilízase principalmente na so forma del llau del veceru (client-side), implementáu como parte d'un navegador web dexando meyores na interfaz d'usuariu y páxina web dinámiques anque esiste una forma de JavaScript del llau del servidor(Server-side JavaScript o SSJS). El so usu n'aplicaciones esternes a la web, por casu en documentos PDF, aplicaciones d'escritoriu (mayoritariamente widgets) ye tamién significativu.

Dende'l 2012, tolos navegadores modernos soporten dafechu ECMAScript 5.1, una versión de javascript. Los navegadores más antiguos soporten a lo menos ECMAScript 3. La sesta edición lliberar en xunetu del 2015.

JavaScript diseñar con una sintaxis similar a C, anque adopta nomes y convenciones del llinguaxe de programación Java. Sicasí, Java y JavaScript tienen semántiques y propósitos distintos.

Toos el navegadores modernos interpreten el códigu JavaScript integráu nes páxines web. Pa interactuar con una páxina web aprovir al llinguaxe JavaScript d'una implementación del Document Object Model (DOM).

Tradicionalmente venía utilizándose en páxina web HTML pa realizar operaciones y namái nel marcu de l'aplicación vecera, ensin accesu a funciones del servidor. Anguaño ye llargamente utilizáu pa unviar y recibir información del servidor xunto con ayuda d'otres teunoloxíes como AJAX. JavaScript interpretar nel axente d'usuariu coles mesmes que les sentencies van descargándose xunto col códigu HTML.

Dende'l llanzamientu en xunu de 1997 del estándar ECMAScript 1, esistieron les versiones 2, 3 y 5, que ye la más usada anguaño (la 4 abandonóse). En xunu de 2015 cerróse y publicó la versión ECMAScript 6.

Historia

Nacencia de JavaScript

JavaScript foi desenvueltu orixinalmente por Brendan Eich de Netscape col nome de Mocha, que foi renombráu darréu a LiveScript, pa finalmente quedar como JavaScript. El cambéu de nome coincidió aproximao col momentu en que Netscape amestó compatibilidá cola teunoloxía Java na so navegador web Netscape Navigator na versión 2.002 n'avientu de 1995. La denominación produció tracamundiu, dando la impresión de que'l llinguaxe ye un allongamientu de Java, y caracterizóse por munchos como una estratexa de mercadotecnia de Netscape pa llograr prestíu y anovar nel ámbitu de los nuevos llinguaxes de programación web.

«JAVASCRIPT» ye una marca rexistrada d'Oracle Corporation. Ye usada con llicencia polos productos creaos por Netscape Communications y entidaes actuales como la Fundación Mozilla.

Microsoft dio como nome al so dialeutu de JavaScript «JScript», pa evitar problemes rellacionaes cola marca. JScript foi adoptáu na versión 3.0 d'Internet Explorer, lliberáu n'agostu de 1996, ya incluyó compatibilidá col Efeutu 2000 coles funciones de fecha, una diferencia de los que se basaben nesi momentu. Los dialeutos pueden paecer tan similares que los términos «JavaScript» y «JScript» de cutiu utilícense indistintamente, pero la especificación de JScript ye incompatible cola de ECMA en munchos aspeutos.

Pa evitar estes incompatibilidaes, el World Wide Web Consortium diseñó l'estándar Document Object Model (DOM, o Modelu d'Oxetos del Documentu n'español), qu'incorporen Konqueror, les versiones 6 d'Internet Explorer y Netscape Navigator, Opera la versión 7, Mozilla Application Suite y Mozilla Firefox dende la so primer versión.[ensin referencies]

En 1997 los autores propunxeron JavaScript por que fuera adoptáu como estándar de la European Computer Manufacturers 'Association ECMA, qu'a pesar del so nome nun ye européu sinón internacional, con sede en Xinebra. En xunu de 1997 foi adoptáu como un estándar ECMA, col nome d'ECMAScript. Poco dempués tamién como un estándar ISO.

JavaScript nel llau servidor

Netscape introdució una implementación de script del llau del servidor con Netscape Enterprise Server, llanzada n'avientu de 1994 (pocu dempués del llanzamientu de JavaScript pa navegador web). A partir de mediaos de la década de los 2000, hubo una proliferación de implementaciones de JavaScript pal llau servidor. Node.js ye unu de los notables exemplos de JavaScript nel llau del servidor, siendo usáu en proyeutos importantes.

Desenvolvimientos posteriores

JavaScript convirtióse n'unu de los llinguaxes de programación más populares n'internet. De primeres, sicasí, munchos desarrolladores renegaben del llinguaxe porque'l públicu al que va empobináu formar publicadores d'artículos y demás aficionaos, ente otres razones. La llegada d'Ajax devolvió JavaScript a la fama y atraxo l'atención de munchos otros programadores. Como resultáu d'esto hubo una proliferación d'un conxuntu de frameworks y llibreríes d'ámbitu xeneral, ameyorando les práutiques de programación con JavaScript, y aumentáu l'usu de JavaScript fora de los navegador web, como se vio cola proliferación de redolaes JavaScript del llau del servidor. En xineru de 2009, el proyeutu CommonJS foi inauguráu coles mires d'especificar una llibrería pa usu de xeres comunes principalmente pal desenvolvimientu fuera del navegador web.

En xunu de 2015 cerróse y publicó l'estándar ECMAScript 6 con un soporte irregular ente navegadores y que dota a JavaScript de carauterístiques avanzaes que s'echaben de menos y que son d'usu habitual n'otros llinguaxes como, por casu, módulos pa organización del códigu, verdaderes clases para programación empobinada a oxetos, espresiones de flecha, iteradores, xeneradores o promeses pa programación asíncrona.

La versión 7 de ECMAScript conozse como ECMAScript 2016, y ye la última versión disponible, publicada en xunu de 2016. Trátase de la primer versión pa la que s'usa un nuevu procedimientu de publicación añal y un procesu de desenvolvimientu abiertu.

Carauterístiques

Les siguientes carauterístiques son comunes a toles implementaciones que s'afaen al estándar ECMAScript, nun siendo qu'especifique explícitamente en casu contrariu.

Imperativu y estructurado

JavaScript ye compatible con gran parte de la estructura de programación de C (por casu, sentencies if, bucles for, sentencies switch, etc.). Con una salvedá, en parte: en C, l'ámbitu de les variables algama al bloque nel cual fueron definíes; sicasí JavaScript nun ye compatible con esto, yá que l'ámbitu de les variables ye'l de la función na cual fueron declaraes. Esto camuda cola versión de ECMAScript 2015, yá que añade compatibilidá con block scoping per mediu de la pallabra clave let. Como en C, JavaScript fai distinción ente espresiones y sentencies. Una diferencia sintáctica con al respective de C ye l'insertamientu automáticu de puntu y coma, esto ye, en JavaScript los puntos y coma que rematen una sentencia pueden ser omitíos.

Dinámicu

    Tipado dinámicu
    Como na mayoría de llinguaxes de scripting, el tipo ta acomuñáu al valor, non a la variable. Por casu, una variable x nun momentu dau pue tar amestada a un númberu y más palantre, religada a una cadena. JavaScript ye compatible con delles formes de comprobar el tipu d'un oxetu, incluyendo duck typing. Una forma de sabelo ye per mediu de la pallabra clave typeof.
    Objetual
    JavaScript ta formáu casi na so totalidá por oxetos. Los oxetos en JavaScript son arrays asociativos, ameyoraos cola inclusión de prototipos (ver más palantre). Los nomes de les propiedaes de los oxetos son claves de tipo cadena: obj.x = 10 y obj['x'] = 10 son equivalentes, siendo azucre sintáctico la notación con puntu. Les propiedaes y los sos valores pueden ser creaos, camudaos o esaniciaos en tiempu d'execución. La mayoría de propiedaes d'un oxetu (y aquelles que son incluyíes pola cadena del heriedu prototípicu) pueden ser numberaes a per mediu de la instrucción de bucle for... in. JavaScript tien un pequeñu númberu d'oxetos predefinidos como son Function y Date.
    Evaluación en tiempu d'execución
    JavaScript inclúi la función eval que dexa evaluar espresiones espresaes como cadenes en tiempu d'execución. Por ello encamiéntase que eval sía utilizáu con procuru y que s'opte por utilizar la función JSON.parse() na midida de lo posible, pos resulta muncho más segura.

Funcional

    Funciones de primer clase
    A les funciones suélse-yos llamar ciudadanos de primer clase; son oxetos en sí mesmos. Como tal, tienen propiedaes y métodos, como .call() y .bind(). Una función añerada ye una función definida dientro d'otra. Esta ye creada cada vez que la función esterna ye invocada. Amás, cada función creada forma una clausura; ye la resultancia d'evaluar un ámbitu conteniendo nuna o más variables dependientes d'otru ámbitu esternu, incluyendo constantes, variables locales y argumentos de la función esterna llamante. La resultancia de la evaluación de felicidá clausura forma parte del estáu internu de cada oxetu función, inclusive dempués de que la función esterior concluya la so evaluación.

Prototípicu

    Prototipos
    JavaScript usa prototipos en cuenta de clases pal usu d'heriedu. Ye posible llegar a emular munches de les carauterístiques qu'apurren les clases en llinguaxes empobinaos a oxetos tradicionales per mediu de prototipos en JavaScript.
    Funciones como constructores d'oxetos
    Les funciones tamién se porten como constructores. Prefijar una llamada a la función cola pallabra clave new crear una nueva instancia d'un prototipu, qu'herieden propiedaes y métodos del constructor (incluyíes les propiedaes del prototipu de Object). ECMAScript 5 ufierta'l métodu Object.create, dexando la creación esplícita d'una instancia ensin tener qu'heredar automáticamente del prototipu de Object (en redolaes antigües puede apaecer el prototipu del oxetu creáu como null). La propiedá prototype del constructor determina l'oxetu usáu pal prototipu internu de los nuevos oxetos creaos. Pueden añader nuevos métodos modificando'l prototipu del oxetu usáu como constructor. Constructores predefinidos en JavaScript, como Array o Object, tamién tienen prototipos que pueden ser modificaos. Anque esto sía posible considérase una mala práutica modificar el prototipu de Object yá que la mayoría de los oxetos en Javascript herieden los métodos y propiedaes del oxetu prototype, oxetos los cualos pueden esperar qu'estos nun fueren modificaos.

Otres carauterístiques

    Redolada d'execución
    JavaScript de normal depende de la redolada nel que s'execute (por casu, nun navegador web) pa ufiertar oxetos y métodos polos que los scripts pueden interactuar col "mundu esterior". Ello ye que depende de la redolada pa ser capaz d'apurrir la capacidá d'incluyir o importar scripts (por casu, en HTML per mediu del tag