Javascript
   

Identificatori e variabili                  

In Javascript un identificatore è un semplice nome che deve iniziare:
  • con una lettera
  • con il simbolo $
  • con il carattere underscore _

dopo questi può proseguire con un numero, una lettera un underscore o un dollaro. Come è evidente non è ammesso un numero come primo elemento di un identificatore. Per quanto sia possibile usare tutto il set di caratteri UNICODE disponibili, per convenzione  o meglio per consuetudine, si usano, per gli identificatori, solo i caratteri ASCII. Ovviamente le parole chiave non possono essere utilizzate come identificatori. Di seguito l'elenco:

Tabella 3.1
abstract arguments
boolean break byte
case catch char class* const continue
debugger default delete do double
else enum* eval export* extends*
false final finally float for function
goto
if implements import* in instanceof int interface
let long
native new null
package private protected public
return
short static super* switch synchronized
this throw throws transient true try typeof
var void volatile
while with
yield
  • le parole che vedete seguite da un asterisco non fanno ancora parte del linguaggio in via ufficiale ma sono comunque riservate in quanto se ne prevede l'uso futuro.
  • le keyword
    implement, interface, let, package, private, protected, public, static, yield
    ,
    sono legali in Javascript ma non in strict (una sorta di modalità sicura per Javascript)
  • arguments ed eval non sono riservate ma neanche permesse in strict mode.
Il mio suggerimento è di non mettersi a fare distinzioni tra strict e non strict, semplicemente non usate le parole dell'elenco in tabella 3.1
E' consigliato inoltre evitare le seguenti parole chiave, usate internamente come oggetti, proprietà e metodi:

Array Date eval function hasOwnProperty
Infinity isFinite isNaN isPrototypeOf length
Math NaN name Number Object
prototype String toString undefined valueOf

La collaborazione stretta tra Java e Javascript suggerisce di evitare anche le seguente parole:

getClass java JavaArray javaClass JavaObject JavaPackage

Non è tutto, dal momento che HTML ha, anche lui, delle parole riservate, ad esempio devolute alla gestione degli eventi ecc... anch'esse sarebbero da evitare:

onblur onclick onerror onfocus
onkeydown onkeypress onkeyup onmouseover
onload onmouseup onmousedown onsubmit

Per chiudere, dal momento che Javascript può essere usato anche per creare vere e proprie applicazioni in ambito Windows, W3C propone un elenco di parole usate in quell'ambito che è bene non utilizzare, principalmente per questioni di portabilità:

alert all anchor anchors area
assign blur button checkbox clearInterval
clearTimeout clientInformation close closed confirm
constructor crypto decodeURI decodeURIComponent defaultStatus
document element elements embed embeds
encodeURI encodeURIComponent escape event fileUpload
focus form forms frame innerHeight
innerWidth layer layers link location
mimeTypes navigate navigator frames frameRate
hidden history image images offscreenBuffering
open opener option outerHeight outerWidth
packages pageXOffset pageYOffset parent parseFloat
parseInt password pkcs11 plugin prompt
propertyIsEnum radio reset screenX screenY
scroll secure select self setInterval
setTimeout status submit taint text
textarea top unescape untaint window

Si, sono piuttosto tante ma le possibilità residue sono comunque infinite. Stampatevi l'elenco o pescatene uno dei tanti disponibili in rete per tenerveloa portata di mano.

Ora che abbiamo visto come creare i nostri identificatori vediamo come essi si applichino per dichiarare esplicitamente le variabili. La sintassi è banale:

var nomevariabile;

che fa uso della parola riservata var. Con questa semplice espressione abbiamo creato la variabile di nome "nomevariabile" che al momento non ha valore, è "undefined". L'assegnazione di un valore ad una variabile invece avviene tramite l'operatore = quindi:

nomevariabile = 1;

assegna il valore 1 a nomevariabile. La cosa si può fare in un unico passaggio:

var nomevariabile = 1;

La dichiarazione può essere multipla:

var x = 1, y = 2, z = "ciao";

oppure suddivisa su più righe, in entrambi i casi è necessario usare la virgola come separatore:

var x = 1,
y = 2,
z = "ciao";

In questi esempi tutte le variabili hanno valori ben definiti.

E' possibile anche assegnare valori tramite espressioni più complesse:

var x = 2 + 3 + 4;
var y = "Hello " + "' " + "World";

A partire dal prossimo paragrafo ci occuperemo dei tipi di dato disponibili.