Les variables creades amb var tenen un abast local: si les creem en l'interior d'una funció d'usuari, només es poden fer servir dins aquesta.
Si en crear una variable prescindim del terme var, aquesta adquireix un caràcter general: es pot fer servir arreu.
El terme var emprat fora d'una funció d'usuari no fa cap efecte: és indiferent d'usar-lo o no.
Exemple
Quan una funció fa servir una o més dades exteriors a la pròpia funció, podem representar-les mitjançant una variable, el nom de la qual és el mateix a l'interior que a l'exterior de la funció.
Però en moltes ocasions és convenient que la variable a l'interior de la funció tingui un nom diferent que a l'exterior, recurs útil si a partir d'un determinat punt del programa s'altera l'una i no convé que s'alteri l'altra, o si la mateixa funció es fa servir en contextos diferents. En aquests casos entren en joc els arguments de la funció. En definir la funció, s'hi defineixen un o més arguments, i si n'hi ha més d'un, els noms es separen per comes. A l'interior de la funció els noms assignats als arguments funcionen com variables ordinàries:
En un altre punt del programa s'executa la funció; per a això, en els llocs corresponents als arguments s'indiquen els valors que hi corresponen.
En els casos més simples, el valor d'un argument s'indica mitjançant una variable (en sentit estricte).
Exemple
Però qualsevol portador de valor pot assignar el valor d'un argument. Així doncs, el valor d'un argument pot ésser, a més:
Exemple
Els valors calculats en una funció d'usuari es poden fer servir a l'exterior de la funció, a condició que siguin assignats a una variable de tipus general. Aquest recurs és obligatori si hi ha més d'un valor calculat que s'hagi de fer servir a fora.
Però si n'hi ha una de sola, podem fer que la pròpia funció adquireixi el valor calculat; això s'aconsegueix amb un return aplicat a una variable que en representi el resultat:
Exemple
La instrucció return també es pot aplicar a una expressió:
Exemple
D'una manera habitual, les instruccions de JavaScript s'agrupen en funcions d'usuari, definides a HEAD i executades a BODY. Però també és possible l'execució directa d'instruccions d'assignació i de funcions predefinides a BODY. Aquests recurs sol limitar-se als casos més senzills, ja que altrament la formulació dels programes esdevé complexa i farragosa:
Exemple