
Kommen wir nun zu Variablen. Mit Variablen können Sie Werte speichern, die nicht von einem Skriptdurchlauf zum nächsten konstant bleiben. Diese Werte können Daten beliebigen Typs, Datenstrukturen jeglicher Art oder Referenzen auf andere Objekte sein. Anders als in vielen Programmiersprachen müssen JMP-Variablen nicht deklariert oder am Anfang des Skripts aufgeführt werden und sind nicht auf die Speicherung eines bestimmten Datentyps beschränkt. Sie können einer vorhandenen Variable also jederzeit einen neuen Wert zuweisen, der nicht vom gleichen Datentyp oder Referenztyp wie der alte sein muss. Variablen haben außerdem einen Gültigkeitsbereich, d. h. den definierten Bereich und die Zeit innerhalb von JMP, in der sie verfügbar sind. Der Bereich, in dem eine Variable verfügbar ist, wird auch als Namespace bezeichnet – der Bereich, in dem ihr Name mit einem bestimmten Wert oder einer Objektreferenz verknüpft ist. Standardmäßig sind Variablen global, d. h. sie existieren im globalen Namespace. Eine globale Variable ist überall in JMP verfügbar, solange die aktuelle JMP-Sitzung besteht. Anders ausgedrückt: Globale Variablen bleiben bestehen, bis Sie JMP beenden. Angenommen, Sie erstellen die globale Variable „s“, die die von Ihrem Skript berechnete Summe speichert. Jedes Skript, das während Ihrer aktuellen JMP-Sitzung ausgeführt wird, hat Zugriff auf diese Variable. Beachten Sie jedoch, dass bei der Verwendung derselben Variablennamen in mehreren Skripten, z. B. „s“ für eine Summe oder „i“ für einen Zähler, die Werte miteinander kollidieren können. Anders ausgedrückt: Sie möchten vielleicht nicht, dass „s“ im zweiten Skript den Wert von „s“ im ersten Skript überschreibt. Wenn jedoch beide Skripte eine globale Variable mit demselben Namen verwenden, passiert genau das, da keine unterschiedlichen Kopien derselben globalen Variable möglich sind. Daher kann es sinnvoll sein, den Gültigkeitsbereich der Variable so einzuschränken, dass sie nur für einen begrenzten Bereich oder eine begrenzte Zeit verfügbar ist. Eine Möglichkeit hierfür ist die Verwendung lokaler Variablen. Diese Variablen sind auf einen begrenzten Namespace beschränkt und somit nur temporär verfügbar, während ein Teil des Skripts ausgeführt wird. Mit der Funktion „Local“ erstellen Sie lokale Variablen. Diese eignen sich gut, um die Namen in Ihren Skripten zu verwalten und Konflikte im globalen Namespace zu vermeiden. Eine weitere Alternative zu globalen Variablen ist der Namespace „Here“. Mit der Funktion „Names Default to“ in Ihrem Skript und einem Booleschen Argument wird für jedes Skript ein eindeutiger Namespace „Here“ erstellt. So können Sie den Gültigkeitsbereich der Variablen auf ein einzelnes Skript beschränken, ohne die Funktion „Local“ zu verwenden. Sie können bei Bedarf weitere Namespaces erstellen und verwalten. JMP bietet neben den Namespaces „Global“, „Here“ und „Local“ weitere vordefinierte Namespaces.