
Parlons maintenant des variables. Elles permettent de stocker des valeurs variables d'une exécution à l'autre d'un script. Ces valeurs peuvent être des données de tout type, des structures de données de tout type ou des références à un autre objet. Contrairement à de nombreux langages de programmation, les variables JMP n'ont pas besoin d'être déclarées ni listées au début du script, et elles ne sont pas limitées au stockage d'un type de données particulier. Vous pouvez donc attribuer une nouvelle valeur à une variable existante à tout moment, et cette nouvelle valeur n'a pas besoin d'être du même type de données ou de référence que l'ancienne valeur. Les variables ont également une portée, qui correspond à la zone et au moment définis dans JMP où elles sont disponibles. La zone dans laquelle une variable est disponible est également appelée espace de noms : l'espace où ce nom est associé à une valeur ou une référence d'objet particulière. Par défaut, les variables sont globales, ce qui signifie qu'elles existent dans l'espace de noms global. Une variable globale est disponible partout dans JMP tant que la session JMP en cours existe. Autrement dit, les variables globales persistent jusqu'à ce que vous quittiez JMP. Supposons que vous créiez une variable globale, s, qui stocke une somme calculée par votre script. Tout script exécuté pendant votre session JMP a accès à cette variable. Cependant, il est important de noter que si vous utilisez souvent les mêmes noms de variables dans plusieurs scripts, comme s pour une somme ou i pour un compteur, ces valeurs peuvent entrer en conflit. Autrement dit, vous ne souhaitez peut-être pas que la variable s du second script écrase la valeur de la variable s du premier, mais si les deux scripts utilisent une variable globale portant le même nom, c'est exactement ce qui se produira, car il est impossible d'avoir des copies différentes de la variable globale portant le même nom. Il peut donc être utile de restreindre la portée de la variable afin qu'elle ne soit disponible que dans une zone ou pour une durée limitée. Une solution consiste à utiliser des variables locales. Il s'agit de variables restreintes à un espace de noms limité, ce qui signifie qu'elles ne sont disponibles que temporairement pendant l'exécution d'une partie du script. La fonction Local permet de créer des variables locales. Celles-ci constituent un excellent moyen de gérer les noms dans vos scripts et d'éviter les conflits dans l'espace de noms global. L'espace de noms Here est une autre alternative. L'utilisation de la fonction Names Default to dans votre script, avec un argument booléen, crée un espace de noms Here unique pour chaque script. Cela vous permet de restreindre la portée des variables à un script spécifique sans utiliser la fonction Local. Vous pouvez créer et gérer d'autres espaces de noms selon vos besoins. JMP inclut d'autres espaces de noms prédéfinis en plus des espaces de noms Global, Here et Local.