
Bene, ora parliamo delle variabili. È possibile utilizzare le variabili per memorizzare valori che non sono costanti da un'esecuzione di uno script all'altra. Questi valori possono essere dati di qualsiasi tipo, strutture dati di qualsiasi tipo o riferimenti a un altro oggetto. A differenza di molti linguaggi di programmazione, le variabili JMP non devono essere dichiarate o elencate all'inizio dello script e non sono limitate a memorizzare un tipo di dati specifico. Quindi è possibile assegnare un nuovo valore a una variabile esistente in qualsiasi momento e il nuovo valore non deve essere dello stesso tipo di dati o riferimento del valore precedente. Le variabili hanno anche un ambito, che è l'area e il periodo definiti all'interno di JMP in cui sono disponibili per l'uso. L'area in cui una variabile è disponibile è anche nota come spazio dei nomi, ovvero lo spazio in cui quel nome è associato a un particolare valore o riferimento a un oggetto. Per impostazione predefinita, le variabili sono globali, il che significa che esistono nello spazio dei nomi globale. Una variabile globale è disponibile ovunque in JMP finché esiste la sessione JMP corrente. In altre parole, le variabili globali persistono finché non si esce da JMP. Supponiamo di creare una variabile globale, s, che memorizza una somma calcolata dallo script. Qualsiasi script in esecuzione durante la sessione JMP corrente ha accesso a tale variabile. Tuttavia, è importante considerare che se si tende a utilizzare gli stessi nomi di variabile in più script, ad esempio s per una somma o i per un contatore, tali valori potrebbero entrare in conflitto tra loro. In altre parole, si potrebbe non voler sovrascrivere il valore di s nel secondo script, ma se entrambi gli script utilizzano una variabile globale con lo stesso nome, questo è esattamente ciò che accadrà, perché non è possibile avere copie diverse della variabile globale con lo stesso nome. Pertanto, può essere utile limitare l'ambito della variabile in modo che sia disponibile solo per un'area limitata o per un periodo di tempo limitato. Un modo per ottenere questo risultato è utilizzare variabili locali. Si tratta di variabili limitate a uno spazio dei nomi limitato, il che significa che sono disponibili solo temporaneamente mentre una parte dello script è in esecuzione. La funzione Local consente di creare variabili locali, che possono essere un buon modo per gestire i nomi negli script ed evitare collisioni nello spazio dei nomi globale. Un'altra alternativa all'utilizzo di variabili globali è l'utilizzo dello spazio dei nomi Here. Utilizzando la funzione Names Default to nello script, con a come argomento booleano, si crea uno spazio dei nomi Here univoco per qualsiasi script. Ciò consente di limitare l'ambito delle variabili a un singolo script senza utilizzare la funzione Local. È possibile creare e gestire altri spazi dei nomi in base alle esigenze e JMP include alcuni altri spazi dei nomi predefiniti oltre a Global, Here e Local.