Introduction

This article needs an editorial review. How you can help.

Aquest capítol presenta JavaScript i comenta alguns dels seus conceptes fonamentals.

Coneixements previs

Aquesta guia asumeix que el lector te els següents coneixements previs:

  • Una idea general de Internet i la World Wide Web (WWW).
  • Bon coneixement de l'HyperText Markup Language (HTML).
  • Alguns coneixements de programació. Si sou nous quant a la programació proveu qualsevol dels tutorials que trobareu a la pàgina principal sobre JavaScript.

On trobar informació sobre JavaScript

La documentació de JavaScript al MDN inclou els següents apartats:

  • Aprenent la Web proporciona informació per a nouvinguts i introdueix conceptes bàsics de programació i Internet.
  • La guia de JavaScript (aquesta guia) proporciona un resum del llenguatge JavaScript així com els seus objectes.
  • La referència de JavaScript proporciona material de referència detallat per a JavaScript.

Si vostè és nou al món de JavaScript es recomana començar amb els articles que es poden trobar a l'àrea d'aprenentatge i la Guia de JavaScript. Un cop assolits els conceptes fonamentals podeu obtindre més detalls sobre objectes individuals i sentències mitjançant la Referència de JavaScript.

Què és JavaScript?

JavaScript és un llenguatge d'script multiplataforma i orientat a objectes. És un llenguatge petit i lleuger. Dins l'entorn d'un amfitrió, es pot connectar JavaScript als objectes del l'entorn per a tenir un control programàtic sobre els mateixos.

JavaScript conté una llibreria standard d'objectes, som Array, Date i Math, o un conjunt bàsic d'elements del llenguatge, com ara operadors, estructures de control o sentències. El nucli de JavaScript es pot extendre per a diferents propòsits mitjançant objectes adicionals; per exemple:

  • JavaScript al cantó del client estén el llenguatge bàsic tot proveïnt objectes per a controlar un navegador i el seu Document Object Model (DOM). Per exemple, les extensions del cantó del client permeten a una aplicació posar elements en un formulari HTML i respondre a events d'usuari com ara clics del ratolí, entrada de formularis o navegació per la pàgina.
  • JavaScript al cantó del servidor estén el llenguatge bàsic tot proveïnt objectes relevants a córrer JavaScript en un servidor. Per exemple, les extensions del cantó del servidor permeten una aplicació comunicar-se amb una base de dades, proveïr continuitat d'informació d'una invocació a una altra de l'aplicació, o bé realitzar manipulacions de fitxers al servidor.

JavaScript i Java

JavaScript i Java son similars des d'alguns punts de vista però són fundamentalment diferents des d'uns altres. El llenguatge JavaScript s'assembla al Java però no té el tipatge estàtic ni les comprovacions de tipatge fort de Java. JavaScript segueix la majoria de les expressions de sintaxi de Java, convencions de nomenclatura i construccions de control de fluxe bàsiques, la qual és la raó per la que el seu nom va ser canviat de LiveScript a JavaScript.

En contrast amb el sistema de classes de Java en temps de compilaciò fabricat per declaracions, JavaScript suporta un sistema en temps d'execució basat en un petit nombre de tipus de dades que representen valors numèrics, booleans i cadenes de caràcters. JavaScript té model d'objecte basat en prototipus en comptes del model més comú, basat en classes. El model basat en prototipus ofereix herència dinàmica, és a dir, el que és heredat pot variar entre diferents objectes individuals. JavaScript també suporta funcions sense cap tipus de requeriment declaratiu especial. Les funcions poden ser propietats d'objectes, sent executades com a mètodes de tipatge lliure.

JavaScript és un llenguatge de forma molt lliure en comparació amb Java. No és necesari declarar totes les variables, classes i mètodes. No és necessari preocupar-se per quins mètodes són públics, privats o protegits, i no és necessari implementar interfícies. Variables, paràmetres i tipus de retorn de funcions so són de tipatge explícit.

Java és un llenguatge de programació basat en classes dissenyat per a executar-se ràpidament i ser segur quant a tipatge. Ser segur quant al tipatge vol dir que, per exemple, no es pot assignar un nombre sencer de Java a una referència d'objecte, o accedir memòria privada tot corrompent bytecode de Java. El model basat en classes de Java implica que els programes consisteixen exclusivament de classes i els seus mètodes. L'herència de classes a Java i el tipatge fort generalment requereixen de jerarquies d'objectes fortament acoblades. Aquests requisits fan que programar en Java sigui més complexe que programar en JavaScript.

En contrast, JavaScript descendeix en esperit d'una línia de llenguatges més petits, amb tipatge dinàmic com ara HyperTalk i dBASE. Aquests llenguatges d'scripting ofereixen eines de programació a una audiència molt més àmplia degut a la seva sintaxi més simple, funcionalitats especialitzades integrades i uns requeriments mínims per a la creació d'objectes.

JavaScript en comparació a Java
JavaScript Java

Basat en objectes. No hi ha distinció entre tipus d'objectes. L'herència funciona a través del mecanisme de protipus i les propietats i mètodes es poden afegir a qualsevol objecte de forma dinàmica.

Basat en classes. Els objectes es divideixen entre classes i instàncies, amb la herència aplicada mitjançant la jerarquia de classes. No es poden afegir propietats ni mètodes dinàmicament ni a classes ni a instàncies.

El tipus de dades de les variables no es declaren (tipatge dinàmic). El tipus de dades de les variables s'ha de declarar (tipatge estàtic).
No pot escriure a disc de forma automàtica. No pot escriure a disc de forma automàtica.

Per a més informació sobre les diferències entre JavaScript i Java vegeu el capítol Detalls del model d'objecte.

JavaScript i l'especificació ECMAScript

La estandarització de JavaScript es realitza a Ecma International — l'associació Europea per a la estandarització de sistemes d'informació i comunicació (ECMA era anteriorment un acrònim de European Computer Manufacturers Association) per a proporcionar un llenguatge de programació standard i internacional basat en JavaScript. Aquesta versió estandaritzada de JavaScript, anomenada ECMAScript, es comporta de la mateixa manera a totes les aplicacions que suporten l'standard. Les empreses poden utilitzar el llenguatge standard obert per a desenvolupar la seva pròpia implementació de JavaScript. L'standard ECMAScript està documentat en la especificació ECMA-262. Vegeu Nou a JavaScript per a aprendre sobre les diferent versions de JavaScript així com les diferents edicions de l'especificació de ECMAScript.

A més, l'standard ECMA-262 també està aprovat per la ISO (International Organization of Standarization) com a ISO-16262. Podeu trobar l'especificació al lloc web de Ecma International. L'especificació de l'ECMAScript no descriu el Model de Objecte Document (DOM), el qual està estandaritzat pel World Wide Web Consortium (W3C). El DOM defineix la forma en que els objectes d'un document HTML s'exposen a l'script. Per a fer-se una millor idea de les diferents tecnologies usades al programar en JavaScript, consulteu l'article resum de tecnologies de JavaScript.

La documentació de JavaScript versus l'especificació de l'ECMAScript

L'especificació de l'ECMAScript és un conjunt de requeriments per a implementar ECMAScript; és útil si es vol implementar característiques del llenguatge que compleixin amb els standards a la vostra pròpia implementació de ECMAScript o a un motor JavaScript (com per exemple el SpiderMonkey a Firefox, o el v8 a Chrome).

El document de ECMAScript no pretèn ajudar als programadors de scripts; utilitzeu la documentació de JavaScript per a obtindre informació sobre com escriure scripts.

La especificació de ECMAScript utilitza terminologia i sintaxi que poden no ser familiars per a programador de JavaScript. Tot i que la descripció del llenguatge pot variar a ECMAScript, el llenguatge en si roman sense canvis. JavaScript suporta totes les funcionalitats definides a la especificació de ECMAScript.

La documentació de JavaScript descriu aspectes del llenguatge que són apropiats per al programador de JavaScript.

Iniciant-se en JavaScript

Iniciar-se en JavaScript és senzill: tot el que fa falta és un navegador Web modern. Aquesta guia inclou algunes de les característiques de JavaScript que només estàn disponibles a les últimes versions de Firefox, per això es recomana utilitzar la versió de Firefox més recent.

Hi ha dues eines que formen part de Firefox que són útils per a experimentar amb JavaScript: la Consola del Web i Scratchpad.

La Consola del Web

La Consola del Web mostra informació sobre la pàgina Web carregada actualment i també inclou una línia de comandes que podeu utilitzar per a executar expressions JavaScript a la pàgina actual.

Per a obrir la Consola del Web, seleccioneu "Web Console" des del menú "Web Developer", que trovareu sota el menú "Tools" a Firefox. Apareixerà a la part de sota de la finestra del navegador. A la part de sota de la consola hi ha la línia de comandes que podeu utilitzar per a introduïr JavaScript, i la sortida apareix al panell de sobre:

Scratchpad

La Consola del Web és excelent per a executar línies individuals de JavaScript, però tot i que pot executar múltiples línies no és gaire còmoda per a això, i no permet desar mostres de codi. És per això que per a exemples més complexos Scratchpad és una eina més adient.

Per a obrir Scratchpad, seleccioneu "Scratchpad" al menú "Web Developer", que trobareu dins el menú "Tools" al Firefox. S'obre en una finestra separada i consisteix d'un editor que podeu utilitzar per a escriure i executar JavaScript al navegador. També podeu desar scripts al disc i carregar scripts des del disc.

Si seleccioneu l'opció "Inspect", el codi a l'editor és executat al navegador i els resultats són inserits tot seguit a l'editor en forma de comentari:

Hola món

Per a iniciar-vos a escriure JavaScript, obriu la Consola del Web o bé l'Scratchpad i escriviu el vostre primer codi "Hola món" en JavaScript.

function saluda(user) {
  return "Hola " + user;
}

saluda("Alice"); // "Hola Alice"

A les següents pàgines, aquesta guia us introduirà la sintaxi de JavaScript així com les seves característiques, de manera que sereu capaços d'escriure aplicacions més complexes.

Document Tags and Contributors

 Contributors to this page: mariodev12, enTropy
 Last updated by: mariodev12,