JScript pour EDV

EDV intègre l'interpréteur de langage JScript 8.0.

La syntaxe est celle de JavaScript mais avec un accès aux classes du framework .Net.

Dans EDV, JScript est utilisé dans les scripts de variables et dans le texte de variables de type Code entre les balises <?= ?> et <? ?>.

La difficulté du JScript pour EDV est l'habitude que l'on prend à utiliser conjointement des variables EDV et des variables JScript. Or, il ne faut pas oublier que EDV effectue une pré-interprétation de JScript pour identifier ses variables. Les variables sont des objets avec une propriété par défaut qui est Value.

Certains mots-clés ont été ajoutés spécifiquement pour EDV :

fonction Type .Net Description
me Variable Retourne la variable hébergeant le script. Voir Les variables dans les scripts. Sans précision de propriété, la valeur est utilisée.
when(...) instruction js

Remplace un if et définit le moment d'interprétation du script.
Limite le moment d'exécution du script aux seuls événements de modification des variables contenues dans l'expression when.
La variable doit pouvoir être directement reconnaissable dans le script et non par l'intermédiaire de edvar, edvcode, eval, ...

Attention : dans la version actuelle, ne supporte pas de retour à la ligne dans ses arguments (compile mais pas de déclencheur sur les variables).

edvarExists("...") Boolean Retourne true si le nom passé en paramètre correspond à une variable existante.
edvar("...") Variable Retourne la variable EDV dont le nom est passé en paramètre.
edvar(".MonDomain.MaVar") équivaut à .MonDomain.MaVar:Object
La pré-interprétation par EDV du JScript convertit .MonDomain.MaVar en edvar(".MonDomain.MaVar").Value
mais convertit .MonDomain.MaVar:Object en edvar(".MonDomain.MaVar")
edvcode("...") String Retourne le code interprété ou le script HTML de la variable EDV dont le nom est passé en paramètre : edvcode(".PageWeb")
Utilisé par les variables de type Code interprètées pour ce qui est contenu entre les balises <?= ?> et <? ?>
evalscript("...") Object Retourne l'interprétation EDV du JScript fourni en paramètre. Nécessite que edvClient soit connu. L'instruction eval native du JScript est disponible par ailleurs.
evalcode("...") String Retourne l'interprétation du code fourni. Un Code contient du script entre les balises <?= ?> et <? ?>.
edvarvalue("...") Object Retourne la valeur de la variable EDV dont le nom est passé en paramètre. Raccourci pour edvar("...").Value.
edvarname("...") String Retourne le nom complet de la variable EDV dont le nom est passé en paramètre. Raccourci pour edvar("...").Name.
echo("...")   Ajoute un texte à la sortie de fonction.
La fonction echo(...) équivaut aux balises <?= ?>.
Elle utilise une variable interne, manipulable, de type StringBuilder nommé _echocode.
newline String Retourne un saut de ligne.
Equivalent à "\r\n".
NOT ... opérateur js Inverse un booléen. La syntaxe originale de JScript est !
... AND ... opérateur js Opérateur ET logique. La syntaxe originale de JScript est &&
... OR ... opérateur js Opérateur OU logique. La syntaxe originale de JScript est ||
edvError String Equivalent à .{Sys}.Error:Value et à edvServer.Error
edvInfo String Equivalent à .{Sys}.Info:Value et à edvServer.Info
edvTrace Object Equivalent à edvServer.Trace(object [,log]). Si la valeur passée est une variable (:Object), le nom et la valeur sont tracés. log est un nom de journal. "." est le journal par défaut.
edvSender Variable Variable ayant déclenché l'appel du script. Peut être null.
edvReturn(value)   Provoque l'interruption du script en cours en retournant une valeur. Des tests de performances sont à effectuer sur cette méthode de contournement de l'absence du mot-clé return.
Lors de cette sortie, _echocode est ignoré (c'est à dire tous les appels à echo() et l'utilisation de <?= ?>)
edvTools EDV.edvTools Biblitohèque globale d'outils pour EDV. Voir la référence de EDV.edvTools.
#... directive

Spécifie qu'un paramètre de fonction prend un tableau facultatif d'éléments du type spécifié.
En déclaration de paramètres de function, hack correspondant aux trois points de la syntaxe officielle : function(... args : Object[]){}
Remplacé par function(#... args : Object[]){}
Contourne un conflit de pré-interprétation de script EDV sur la séquence ... ("grand-parent")
Voir Les fonctions en JScript

edvClient.OpeningVarsFile fournit le nom du fichier .edvars en cours d'ouverture. A utiliser dans un script when(:Scripting).

Vous noterez la différence entre du Script et du Code. Le Script est au format JScript, tandis que le Code est du texte dans lequel sont présents des blocs de scripts entre les balises <?= ?> et <? ?>. Html, Xml et Sql, par exemples, sont du Code.

Note : La documentation de JScript fait référence à l'utilisation de Array mais ce type fait référence à .Net et ne peut être utilisé avec la syntaxe JScript. Il est possible d'utiliser l'objet ArrayList du .Net ainsi que la notation [a, b, c] du JScript.

Les objets associatifs ne fonctionnent qu'avec des espaces autours du ':' à cause d'une insuffisance d'EDV dans l'interprétation de la syntaxe : var lObjAss = {name : "nom", value : 123};

L'usage de la boucle for ... in peut nécessiter l'utilisation de .GetEnumerator() appliquée à votre objet de collection.

Vous pouvez accéder aux méthodes statiques de la classe Variable et aux méthodes de l'objet edvClient.

A détailler

 

Standard JScript :

 

Catégorie

Fonctionnalité ECMAScript 3/Mot clé

Gestion de tableaux

Tableau (tout n'est pas fonctionnel) , concat, join, length, reverse, slice, sort

Assignations

Assigner (=), Assignation d'addition (+=), Assignation de bits AND (&=),
Assignation de bits OR (|=), Assignation de bits XOR (^=), Assignation de division (/=),
Assignation de décalage vers la gauche (<<=),
Assignation de modulo (%=),
Assignation de multiplication (*=),
Assignation de décalage vers la droite (>>=),
Assignation de soustraction (-=),
Assignation de décalage vers la droite non signé (>>>=)

Booléens

Boolean, true, false

Commentaires

/*...*/ ou //

Constantes/Littéraux

NaN null,Infinity undefined

Flux de contrôle

break continue do...while for for...in if...else Labeled return switch while

Dates et heures

Date getDate, getDay, getFullYear, getHours, getMilliseconds, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getYear, getUTCDate, getUTCDay, getUTCFullYear, getUTCHours, getUTCMilliseconds, getUTCMinutes, getUTCMonth, getUTCSeconds, setDate, setFullYear, setHours, setMilliseconds, setMinutes, setMonth, setSeconds, setTime, setYear, setUTCDate, setUTCFullYear, setUTCHours, setUTCMilliseconds, setUTCMinutes, setUTCMonth, setUTCSeconds, toGMTString, toLocaleString, toUTCString, parse, UTC

Déclarations

Function new this var with

Gestion des erreurs

Error, description, number, throw, try...catch

Création de fonctions

caller, Function arguments, length

Méthodes globales

Global escape, unescape eval isFinite, isNaN parseInt, parseFloat

Math

Math abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random, round, sin, sqrt, tan, E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, SQRT2

Nombres

Number MAX_VALUE, MIN_VALUE NaN NEGATIVE_INFINITY, POSITIVE_INFINITY

Création d'objets

Object new constructor, instanceof, prototype, toString, valueOf

Opérateurs

Addition (+), Soustraction (-) Modulo arithmétique (%) Multiplication (*), Division (/) Négation (-) Égalité (==), Inégalité (!=) Inférieur à (<), Inférieur ou égal à (<=) Supérieur à (>) Supérieur ou égal à (>=) And logique (&&), Or (||), Not (!) Opérateur de bit And (&), Or (|), Not (~), Xor (^) Décalage vers la gauche (<<), Décalage vers la droite (>>) Décalage vers la droite non signé (>>>) Conditionnel (?:) Virgule (, ) delete, typeof, void Décrémentation ( -- ), Incrémentation (++),Égalité stricte (===), Inégalité stricte (!==)

Objets

Array Boolean Date Function Global Math Number Object RegExp Regular Expression String

Expressions régulières et critères spéciaux

RegExp index, input, lastIndex, $1...$9, source, compile, exec, test Regular Expression Syntax

Chaînes

String charAt, charCodeAt, fromCharCode indexOf, lastIndexOf split toLowerCase, toUpperCase lengthconcat, slice match, replace, search anchor, big, blink, bold, fixed, fontcolor, fontsize, italics, link, small, strike, sub, sup


JScript 8.0 est la nouvelle génération d'une implémentation du langage ECMA 262 par Microsoft. JScript 8.0 représente la parfaite combinaison de l'ensemble des fonctionnalités des versions précédentes de JScript avec celles des langages fondés sur les classes. JScript 8.0, développé conjointement avec le langage ECMAScript Edition 4, a fait l'objet de nombreuses améliorations et notamment un code véritablement compilé, des variables typées et sans type, la liaison anticipée et tardive, des classes (avec héritage, surcharge de fonctions, accesseurs de propriété, etc.), des packages, une prise en charge de plusieurs langages et l'accès au .NET Framework.

Référence : MSDN de Microsoft

Voir aussi