JavaScript et C: Héritage et différences
La syntaxe du langage est globalement celle de C et en diffère quand on a voulu créer du code plus dynamique. Elle fait des emprunts aussi aux langages à Awk et Perl.
Il y a des différences notables entre les deux, car JavaScript s'inspire aussi d'autres langages:
- Les identifieurs JavaScript sont sensibles à la casse.
- Les mots-clés doivent être en minuscules.
- Le point-virgule est optionnel.
- Les fonctions peuvent être des objets.
- Une fonction peut contenir d'autres fonctions (elle servent de méthodes).
- Les variables ont des types dynamiques.
- Les tableaux sont dynamiques ce qui nous ramène à AWK.
- Comme en PHP, un nombre dans une chaîne de caractère est traité comme une valeur numérique.
- Les expressions régulières font partie du langage ce qui vient de Perl.
- On crée des prototypes pour étendre les objets durant l'exécution.
- with est ajouté à JavaScript.
- JavaScript utilise un garbage collector.
Toutes ces différences ont le même but: rendre le langage plus dynamique et faciliter la création de scripts.
Les points importants de la syntaxe JavaScript
Instructions et séparateurs, le cas du point virgule
Les instructions ne sont pas limitées par la fin de ligne (sauf le commentaire simple) et ont pour unique séparateur le point-virgule. Cependant quand une instruction est considérée comme complète et que l'interpréteur rencontre un espace, une fin de ligne, une tabulation, il insère virtuellement un point-virgule. Il vaut mieux toutefois ne pas compter là-dessus pour ne pas rendre le code illisible.
La virgule est un séparateur interne aux instructions, par exemple dans l'en-tête d'une fonction elle sépare les arguments.
Les parenthèses () regroupent des listes ou isolent une expression.
Les crochets [] servent à indicer un tableau.
La syntaxe des commentaires et blocs d'instructions est celle de C
Un commentaire simple débute par une double barre inclinée // et se poursuit jusqu'en fin de ligne.
Un commentaire fermé commence par le couple de symboles /* et se termine par */ sans que les fins de lignes n'aient de rôle à jouer autre que la mise en forme.
Il peut comporter une seule ligne ou plusieurs.
... code ... /* commentaire */
Un ensemble d'instructions est isolé par les opérateurs "{" pour le début du bloc et "}" pour la fin. Cet ensemble est généralement associé à une commande comme if(condition), ou par une instruction de boucle.
Il peut être utilisé tout simplement, sans grande utilité, mais sans que ce soit une erreur de syntaxe.
Un bloc d'instructions est considéré comme une instruction, ainsi:
if(x == 5) document.write("ok");
est équivalent à:
if(x == 5)
{
document.write("ok");
}
Avec la différence que dans le second cas on peut regrouper un ensemble d'instructions.
La clause with a été ajoutée à JavaScript
C'est un exemple de différence de syntaxe avec le langage C.
Son rôle est de définir un sous ensemble dans lequel on utilise les méthodes et attributs d'un objet sans mentionner cet objet.
Exemple:
var x = new String("--> hello");
with(x)
{
document.write(toUpperCase());
}
Dans cet exemple, la méthode toUpperCase() de l'objet String est appliquée implicitement à l'instance x désignée par with.
Un exemple plus utile serait de placer document en with, on peut alors faire un code plus simple en utilisant write ou d'autres méthodes comme getElementById en série.
with(document)
{
write("--> hello");
}
Le code des démonstrations décrit en encarts est imbriqué dans la page et affiche donc le mot hello.
La syntaxe spécifique à chaque instruction du langage est décrite dans les chapitres qui leur sont dédiés.
Voir aussi