Actions

Cours

Différences entre versions de « Technologies avancées du eLearning 2/TOUT ce qu'il y a à savoir »

De GBLL, TAL, ALAO, etc.

< Cours:Technologies avancées du eLearning 2
Ligne 78 : Ligne 78 :
 
Quand le système rencontre un appel de fonction, il va essayer de retrouver sa définition, faire correspondre les valeurs transmises aux paramètres et renvoyer un résultat (si la commande <syntaxhighlight lang="javascript" inline>return</syntaxhighlight> a été utilisée dans la déclaration de la fonction).
 
Quand le système rencontre un appel de fonction, il va essayer de retrouver sa définition, faire correspondre les valeurs transmises aux paramètres et renvoyer un résultat (si la commande <syntaxhighlight lang="javascript" inline>return</syntaxhighlight> a été utilisée dans la déclaration de la fonction).
  
{{encart|'''En javascript''' : <syntaxhighlight lang="javascript">function carre(nombre){
+
{{encart|'''En javascript''' : <syntaxhighlight inline lang="javascript">nomDeLaFonction(liste,des,parametres);</syntaxhighlight>|#ec853b}}
 +
<span class<nowiki>=</nowiki>"mw-customtoggle-3">Voir un exemple</span>
 +
<syntaxhighlight lang="javascript" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-3">function carre(nombre){
 
   return nombre*nombre ;
 
   return nombre*nombre ;
 
}
 
}
 
var num = carre(3) + 1; //num vaut 10
 
var num = carre(3) + 1; //num vaut 10
num = carre(num) + carre(5); //num vaut 125, car 10×10 + 5×5 = 125</syntaxhighlight>|#ec853b}}
+
num = carre(num) + carre(5); //num vaut 125, car 10×10 + 5×5 = 125</syntaxhighlight>
  
 
== Structures de contrôle ==
 
== Structures de contrôle ==

Version du 27 novembre 2018 à 21:24

Dans ce qui suit :

élément javascript à savoir

complément d'information

Variable et type

Dès qu'on a besoin de conserver une valeur on va créer une variable (qui est comme une boite à laquelle on a donné un nom)

En javascript: var nomVar ;

Toute variable a un type, qui décide de la manière dont le système va traiter l'information.

En javascript, on peut demander le type d'une variable : typeof nomVar ;. (réponses possibles cf. diapo 9)

Quand une variable n'a pas le type attendu par le système, javascript va automatiquement essayer de la transtyper[1]. Par conséquent, vous devez toujours savoir quel type de variable vous manipulez.

Opérateurs

Javascript définit un ensemble d'opérateurs qui prennent deux opérandes et renvoient une valeur. Si les opérandes sont des symboles (ex : nom de variable, appel de fonction) ou autre expression, la valeur des opérandes est calculée avant que l'effet de l'opérateur ne lui soit appliqué.

Affectation

coteGauche = coteDroit;

  • le coteGauche est le nom de la variable qui va accueillir la valeur ;
  • le coteDroit est une constante/expression qui sera calculée avant que l'on ne stocke son résultat[2].

Opérateurs arithmétiques

Les opérateurs suivants prennent des nombres (Number) en entrée et renvoient un nombre :

  • + → addition var num = 1 + 4 ; // num vaut 5 ;
  • - → soustraction var num = 3 - 2 ; // num vaut 1 ;
  • * → multiplication var num = 2 * 4 ; // num vaut 8 ;
  • / → division var num = 3 / 2 ; // num vaut 1.5 ;
  • % → reste de la division entière var num = 5 % 2 ; // num vaut 1.

Opérateur de concaténation

L'opérateur suivant prend une chaine de caractère (String) en entrée et renvoie une chaine de caractère[3] :

  • + → concaténation var phrase = "Bonjour"+ " " + "tout le monde" ; // phrase vaut "Bonjour tout le monde".

Opérateurs booléens

Les opérateurs suivants prennent des booléens (Boolean) en entrée et renvoient un booléen :

  • || → ou logique var booleen = true || false ; // booleen vaut true ;
  • && → et logique var booleen = true && false ; // booleen vaut false ;
  • ! → non logique var booleen = !false ; // booleen vaut true.

Les opérateurs suivants prennent n'importe quel type en entrée et renvoient un booléen[4] :

  • == → test d'égalité var booleen = 1 == 2 ; // booleen vaut false ;
  • != → test de différence var booleen = "1" != "2" ; // booleen vaut true ;

Fonction

Une fonction permet d'assimiler une séquence d'instructions à un nom et de renvoyer une valeur. Certaines fonctions sont définies par le langage javascript, d'autres peuvent être créées par le programmeur.

Déclaration de fonction

En javascript :
function nomDeLaFonction(liste,des,parametres){
   //séquence d'instructions
   return valeurRenvoyée ;
}

Attention, aucune instruction située après un return n'est jamais exécutée.

Appel de fonction

Quand le système rencontre un appel de fonction, il va essayer de retrouver sa définition, faire correspondre les valeurs transmises aux paramètres et renvoyer un résultat (si la commande return a été utilisée dans la déclaration de la fonction).

En javascript : nomDeLaFonction(liste,des,parametres);

Voir un exemple

function carre(nombre){
  return nombre*nombre ;
}
var num = carre(3) + 1; //num vaut 10
num = carre(num) + carre(5); //num vaut 125, car 10×10 + 5×5 = 125

Structures de contrôle

if

On peut définir des structures de contrôle pour n'exécuter certaines instructions que dans certaines conditions.

En javascript :
if(expr){
  //code à exécuter si expr est évaluée à true
}
else{
  //code à exécuter si expr est évaluée à false
}
Voir un exemple

expr est une expression booléenne (même si ce n'est pas un booléen) : l'expression sera évaluée, puis transtypée pour avoir un booléen.

Exemple

function pair(nombre){
  return (nombre % 2 == 0) ; // renvoie un booléen
}

if(pair(2)){
  console.log("Va s'afficher");
}
else{
  console.log("Ne va pas s'afficher");
}
if(pair(3)){
  console.log("Ne va pas s'afficher");
}
else{
  console.log("Va s'afficher");
}

for

On peut également répéter des instructions jusqu'à ce qu'une condition soit réalisée, en utilisant une boucle.

En javascript :
for(/*initialisation*/;/*condition de bouclage*/;/*incrément*/){
  //code à exécuter si condition de bouclage est évaluée à true
}
  • L'exécution d'une telle boucle commencera toujours par l'initialisation,
  • Si la condition de bouclage est respectée
    • on exécutera le code situé entre les accolades,
    • une fois l'accolade fermante atteinte on va exécuter l'incrément,
  • Si la condition de bouclage est respectée
    • on exécutera le code situé entre les accolades,
    • une fois l'accolade fermante atteinte on va exécuter l'incrément,
  • et ainsi de suite.

Voir un exemple

expr est une expression booléenne (même si ce n'est pas un booléen) : l'expression sera évaluée, puis transtypée pour avoir un booléen. Il faut toujours s'assurer que la condition de bouclage peut changer jusqu'à être évaluée à false, sinon le programme peut boucler à l'infini.

Exemple

for(var i=1;i<=10;i=i+1){
  console.log(i);
}/*Va afficher :
1
2
3
4
5
6
7
8
9
10
*/

Notes et références

  1. convertir une variable d'un type à un autre
  2. Quand une variable contient un objet, on ne copie pas la valeur mais une référence vers l'objet. Cela veut dire que :
    class objet{
      constructor(entier){
        this.val=entier;
      }
      mod(entier){
        this.val=entier;
      }
    }
    var obj1 = new objet(22),
        obj2 = obj1;
    obj2.mod(35) ;
    console.log(obj1); // affiche Object { val: 35 }
    
    // mais
    var int1 = 22,
        int2 = int1;
    int2 = 35 ;
    console.log(int1); // affiche 22
    
  3. Attention, il suffit d'une opérande String pour que + transtype l'autre.
  4. Attention au transtypage (cf. diapo 12)