Syntaxe JavaScript - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Fonctions

Une fonction est un bloc d'instructions avec une liste de paramètres (éventuellement vide). Elle possède généralement un nom et peut renvoyer une valeur.

        function nom-fonction(argument1, argument2, argument3) {          instructions;          return expression;        }      

Syntaxe pour l'appel d'une fonction anonyme, c'est-à-dire sans nom :

        var fn = function(arg1, arg2) {          instructions;          return expression;        };      

Exemple de fonction : l'algorithme d'Euclide. Il permet de trouver le plus grand commun diviseur de deux nombres, à l'aide d'une solution géométrique qui soustrait le segment le plus court du plus long :

        function gcd(segmentA, segmentB) {          while (segmentA != segmentB) {            if (segmentA > segmentB)              segmentA -= segmentB;            else              segmentB -= segmentA;          }          return segmentA;        }        println(gcd(60, 40)); // imprime 20      
  • le nombre des paramètres passés à l'appel de la fonction n'est pas obligatoirement égal au nombre des paramètres nommés dans la définition de la fonction
  • si un paramètre nommé dans la définition de la fonction n'a pas de paramètre correspondant dans l'appel de la fonction, il reçoit la valeur undefined
  • à l'intérieur de la fonction, les paramètres peuvent être accédés par l'objet arguments. Cet objet donne accès à tous les paramètres en utilisant un indice : arguments[0], arguments[1], ... arguments[n], y compris ceux qui sont au-delà des paramètres nommés. Attention, arguments n'est pas un tableau. Il a une propriété length mais il n'a pas les méthodes des tableaux comme slice, sort, etc.
  • tous les paramètres sont passés par valeur, sauf pour les objets qui sont passés par référence.
        var Objet1 = {a:1}        var Objet2 = {b:2}        function bizarre(p) {          p = Objet2;          // on ignore la valeur reçue dans le paramètre p          p.b = arguments[1]   // on remplit Objet2.b avec la valeur du 2ème paramètre reçu        }        bizarre(Objet1, 3)     // Objet1 est ignoré, 3 est un paramètre additionnel        println(Objet1.a + " " + Objet2.b); // imprime 1 3      

On peut déclarer une fonction à l'intérieur d'une autre. La fonction ainsi créée pourra accéder aux variables locales de la fonction dans laquelle elle a été définie. Elle se souviendra de ces variables, même après qu'on soit sorti de la fonction dans laquelle elle a été définie, ce qui constitue une fermeture.

        var parfum = "vanille"        var glace        function dessert() {          var parfum = "chocolat"          glace = function() {println(parfum)}        }        dessert()         // imprime "chocolat" parce qu'on est dans dessert        glace()           // imprime "chocolat" et pas "vanille", même si on est sorti de dessert      

Divers

Casse

Javascript est sensible à la casse.

L'usage est de donner aux objets un nom qui commence par une majuscule et de donner aux fonctions ou variables un nom qui commence par une minuscule.

Espaces vides et points-virgules

Dans le langage Javascript les instructions se terminent par un point-virgule.

Cependant Javascript comporte un mécanisme d'insertion automatique de point-virgule : lors de l'analyse d'une ligne de code qui ne se termine pas par un point-virgule, si le contenu de la ligne correspond à une instruction correcte, la ligne peut être traitée comme si elle se terminait par un point-virgule.

Les caractères espace, tabulation, fin de ligne et leurs variantes, quand ils ne sont pas inclus dans une chaîne de caractères, sont désignés sous le terme général whitespace. Les caractères whitespace peuvent avoir un effet sur le code à cause du mécanisme d'insertion automatique de point-virgule.

Pour éviter les effets non désirés dus au mécanisme d'insertion automatique de point-virgule, il est conseillé d'ajouter systématiquement un point-virgule à la fin de chaque instruction, même si cela diminue la lisibilité du code.

Exemple d'effet non désiré :

      return      a + b;      //   ces 2 lignes renvoient undefined car elles sont traitées comme:      //   return;      //   a + b;      

Autre exemple :

      a = b + c      (d + e).fonc()      //   pas de point-virgule ajouté, les lignes sont traitées comme:      //   a = b + c(d + e).fonc()      

D'autre part, les caractères whitespace accroissent inutilement la taille du programme et donc du fichier .js. La solution la plus simple à ce problème est de faire comprimer les fichiers par le serveur, ce qui réduira la taille de tous les fichiers source téléchargés sur le serveur. La compression en zip fonctionne mieux que les logiciels spécialisés en suppression de whitespace (whitespace parser).

Commentaires

La syntaxe des commentaires est la même qu'en C++.

      // commentaire             /* commentaire         multiligne */      

Il est interdit d'imbriquer les commentaires :

      /* cette syntaxe         /* est interdite */      */      
Page générée en 0.098 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise