Exercice 1/11

Dans le fichier "script.js" :

  • déclarez la fonction display;
  • dans la fonction mettez alert("Je suis une fonction");
  • exécutez la fonction;
  • cliquez sur "Soumettre ma réponse".

Leçon 1/11

Dans cet exercice vous allez découvrir ce qu'est une fonction, à quoi ça sert et comment déclarer une fonction.

À quoi ça sert ?

Quand vous allez commencer à écrire des scripts, vous allez vous rendre compte que certains morceaux de code font la même chose et sont répétés à plusieurs endroits dans votre script.

Ceci alourdit le code et n'est pas pratique à maintenir à jour. Si vous souhaitez modifier ce code qui est réutilisé un peu partout dans le script, il faudra le faire pour toutes ses occurrences. Pas pratique. C'est la que les fonctions interviennent.

Une fonction est une sorte de "boîte noire" dans laquelle est écrit une portion de code qui fait quelque chose. Une fonction porte un nom que vous aurez choisi (comme une variable). Il suffira d'appeler ce nom dans le script et le code correspondant sera exécuté.

La syntaxe d'une fonction

function maFonction () {
    // Code a exécuter
}

Pour déclarer une fonction, il faut le mot-clé function suivi du nom que vous voulez donner à cette fonction. Puis un couple de parenthèses () dans lequel vous pourrez donner des paramètres / arguments qui seront utilisés dans la fonction (mais ils ne sont pas obligatoires). Entre les accolades {} se trouve la portion de code à exécuter. Il n'y a pas de ; à la fin : c'est une structure (comme les boucles et les conditions) et non une instruction.

Ici maFonction n'est pas exécutée, juste déclarée. Pour exécuter la fonction il faut l'appeler :

maFonction();

Fonction ou méthode ?

Sans le savoir, vous avez déjà utilisé des fonctions proposées nativement par Javascript : alert(), prompt(), confirm() ...

Il y a aussi toUpperCase() qui permet de mettre du texte en majuscule. C'est une fonction utilisée avec un objet de type chaîne de caractères (string).

Lors de l'introduction sur les objets on avait vu qu'un objet possédait des propriétés et des méthodes. Une méthode est en fait une fonction native d'un objet Javascript, comme toUpperCase() et plein d'autres.
Mais c'est exactement la même chose.

Commentaires les mieux notés

  • mram Administrateur

    Juste mettre le "J" majuscule ligne 2.

  • simon.fred

    Bonjour, je viens de réussir mais je ne suis pas sur de bien comprendre, quand vous dite qu'il faut exécuter la function, ça veut dire qu'il faut là rappeler à la fin ?

  • mram Administrateur

    Y a pas de souci, ça aurait du me piquer les yeux, mais je code / j'écris trop vite sans forcément relire. Merci !

  • maksika

    bonjour, Peux tu m'expliquer pourquoi je ne eux valider l 'exo ? Y a-t'il une erreur ?

24 Commentaires

  • mram

    mram Administrateur

    Juste mettre le "J" majuscule ligne 2.

    le 17/03/2017 à 19h15

  • simon.fred

    simon.fred

    Bonjour, je viens de réussir mais je ne suis pas sur de bien comprendre, quand vous dite qu'il faut exécuter la function, ça veut dire qu'il faut là rappeler à la fin ?

    le 07/12/2017 à 11h42

  • mram

    mram Administrateur

    Bonjour, oui c'est ça. Au début vous ne faites que la créer et dire ce qu'elle va faire. Après il faut l'exécuter.

    le 10/12/2017 à 14h25

  • mram

    mram Administrateur

    Y a pas de souci, ça aurait du me piquer les yeux, mais je code / j'écris trop vite sans forcément relire. Merci !

    le 04/09/2016 à 13h35

  • maksika

    maksika

    bonjour, Peux tu m'expliquer pourquoi je ne eux valider l 'exo ? Y a-t'il une erreur ?

    le 13/03/2017 à 11h01

  • mram

    mram Administrateur

    le "display()" doit être en dehors de la fonction.

    le 14/02/2017 à 00h45

  • pascal-ds

    pascal-ds

    bonjour, quelques petites coquilles dans le paragraphe de cours - j'espère que vous ne m'en voudrez pas de ces remarques, mais travaillant dans l'édition, les coquilles me piquent un peu les yeux :o) - "Il suffira d'appelé" => appeler dans l'encadré de syntaxe : // Code a exécuté => à exécuter puis couple de parenthèse => parenthèses mais il ne sont => ils

    le 02/09/2016 à 08h49

  • kabalojonas44

    kabalojonas44

    AVEZ-VOUS BIEN AFFICHÉ LA VALEUR DEMANDÉE AVEC ALERT() ET EXÉCUTÉ LA FONCTION ?

    le 27/12/2016 à 15h14

  • yarkagone

    yarkagone

    function display () { alert("je suis une fonction") display() }...........bonjour mram ce code ne passe pas pourquoi ?

    le 08/02/2017 à 11h57

  • mram

    mram Administrateur

    Et oui, ici vous déclarez la fonction mais elle n'est pas exécutée. Regardez la description de l'exercice.

    le 02/01/2017 à 14h27

  • bsmeyers84

    bsmeyers84

    Est se bon car cela ne fonctionne pas j'ai le message SYNTAXERROR:UNEXPECTED END OF INPUT

    le 24/08/2016 à 16h41

  • mram

    mram Administrateur

    Ligne 4 on demande d'exécuter la fonction, donc pas besoin du mot clé devant (revoyez l'énoncé). Par ailleurs, pas besoin de l'argument "test", ce n'est pas demandé.

    le 24/08/2016 à 20h56

  • patricerameaux

    patricerameaux

    syntax error unexpected token ) : je ne vois pas autre chose

    le 17/10/2016 à 10h03

  • mram

    mram Administrateur

    Il ne faut pas mettre le alert() ligne 1 mais entre les accolades, dans la fonction. Et il faut ensuite appeler la fonction.

    le 18/10/2016 à 09h42

  • titi-fernandes

    titi-fernandes

    bonjour je n'arrive pas à voir pourquoi mon code ne marche pas? un peu d'aide svp!!!!

    le 21/09/2017 à 17h17

  • mram

    mram Administrateur

    Bonjour, il ne fallait pas oublier le mot-clé "function" devant le nom de la fonction.

    le 22/09/2017 à 18h36

  • alexismoquet

    alexismoquet

    bjr, ok c'est bon, je n'avais pas appelé la fonction à la fin

    le 13/10/2017 à 09h50

  • nkeshimanabrice-37

    nkeshimanabrice-37

    pouvez-vous corriger...

    le 13/12/2018 à 09h42

  • meriam

    meriam Administrateur

    il faut exécuter la fonction aprés sa déclaration, ce qui donne function display () { alert("Je suis une fonction"); } display()

    le 13/12/2018 à 14h22

  • mick.aubin-63

    mick.aubin-63

    et on me dit que cela ne marche pas

    le 11/06/2018 à 13h16

  • mram

    mram Administrateur

    Bonjour,

    Quel est le message exact que vous avez ??

    le 19/06/2018 à 04h04

  • alexismoquet

    alexismoquet

    function display () { alert("Je suis une fonction"); }

    le 25/09/2017 à 15h57

  • mram

    mram Administrateur

    Bonjour, les accolades sont toujours collées au nom de la fonction.

    le 29/09/2017 à 00h47

  • duboisdelphine-16

    duboisdelphine-16

    je ne comprends pas pourquoi ça ne marche : function display() function display(){alert("Je suis une fonction");}

    le 26/03/2018 à 08h43

  • mram

    mram Administrateur

    Bonjour, à quoi sert la première ligne ?

    le 28/03/2018 à 06h07

  • duboisdelphine-16

    duboisdelphine-16

    ok je viens de trouver le problème, pour exécuter une fonction, il faut la mettre à la fin, après les acolades

    le 26/03/2018 à 10h35

  • armand1807

    armand1807

    en sois ya rien de compliquer ! alors pourquoi ça marche pas la ???? function display () { alert("Je suis une fonction") }

    le 17/08/2017 à 14h10

  • mram

    mram Administrateur

    Votre dernière version du code est correcte. Pour utiliser une fonction il y a 2 étapes. On la construit pour décrire ce qu'elle va faire avec le mot-clé "function" et on lui donne un nom. Puis on l'exécute en l'appelant par son nom comme on le fait pour alert() , prompt() ou autre fonction native de Javascript.

    le 17/08/2017 à 20h43

  • simon.fred

    simon.fred

    Bonjour, je sent que je vais regretter cette demande d'aide mais pourriez-vous m'aider ? je ne comprends pas pourquoi j'ai un message d'erreur. j'ai lu tous les commentaires et mon code et je ne vois pas ce qui pose problème. :) merci d'avance function display() { alert("Je suis une fonction"); }

    le 05/12/2017 à 12h11

  • mram

    mram Administrateur

    Bonjour, il ne suffit pas de créer la fonction, il faut l'exécuter ensuite. C'est expliqué dans l'énoncé.

    le 10/12/2017 à 13h47

  • nkeshimanabrice-37

    nkeshimanabrice-37

    je ne vois pas l'erreur...

    le 28/12/2018 à 11h46

  • meriam

    meriam Administrateur

    Bonjour, la syntaxe de déclarer une fonction function nomFonction() { traitement à faire } (pour déclarer une fonction d'utilisez pas le mot clé var). Il exécuter la fonction à la fin.

    le 28/12/2018 à 12h43

  • nadaljeanyves-70

    nadaljeanyves-70

    C'est bon j'ai compris mon erreur, je ne l'ai pas executer.

    le 17/06/2019 à 22h54

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Déclarer une fonction</title> <script src="script.js"></script> </head> <body> </body> </html>