Sauter les bases, je connais PHP
La base
Le JavaScript côté navigateur
Les librairies incontournables
Pour aller plus loin
Cas Pratiques (ES2015)

Ecrire le code "comme il arrive" est suffisant pour un algorithme simple mais on va être très rapidement amené à répéter une même logique plusieurs fois. Pour remédier à ce problème, il est possible d'écrire des fonctions.

Syntaxe

Les fonctions permettent de stocker en mémoire une certaine logique que l'on pourra utiliser à plusieurs reprises dans la suite de notre code. Elles prennent en général des paramètres et retournent un résultat particulier.

function saluer (nom) {
    return "Salut " + nom
}
// On appel ensuite notre fonction avec 
saluer('Marc') // Salut Marc

Les fonctions en JavaScript sont un type de variable particulier, il est donc aussi possible de ne pas leur donner de nom, mais de les stocker dans une variable de manière classique.

var saluer = function (nom) {
    return "Salut " + nom
}

Nous verrons la différence entre ces 2 notations dans un prochain chapitre. Il est cependant important de noter quelques points importants concernant les fonctions :

  • Si la fonction ne return rien à la fin de son éxécution alors elle renverra automatiquement la valeur undefined.
  • Si on appelle la fonction en omettant certains paramètres, ils prendront la valeur undefined.
var demo = function (nom) {
    return "Salut " + nom
}
demo() // nom aura la valeur undefined dans la fonction

Exemple

Si on souhaite convertir un nombre de secondes en nombre de minutes on pourra se créer une fonction convert_to_min

var convert_to_min = function (secondes)
  return secondes / 60
}

convert_to_min(3600) // 60

Si on souhaite rendre le paramètre optionel et lui assigner la valeur 0 par défaut, il nous suffira de rajouter une condition

var convert_to_min = function (secondes)
  if (secondes === undefined) {
    secondes = 0
  }
  return secondes / 60
}

convert_to_min(3600) // 60
convert_to_min() // 0

Les méthodes

Une fonction peut être stockée dans la propriété d'un objet.

var eleve = {
    nom: 'Marc',
    note: 14,
    present: function () {
        return 'Je suis présent'
    }
}

eleve.present() // 'Je suis présent'

Une fonction utilisée sur un objet est appéllé méthode. Les méthodes sont d'ailleurs utilisés sur les types d'objet natifs du JavaScript comme les chaines de caractères ou les entiers.

"Salut".toUpperCase() // SALUT 
"Comment ça va ?".split(' ') // ['Comment', 'ça', 'va', '?']
1.toString() // '1'
1.1312312312.toFixed(2) // '1.13'

Si vous souhaitez obtenir plus d'informations sur les méthodes disponibles, vous pouvez consulter la documentation JavaScript disponible sur le MDN (mozilla developer network)

Prototype ?

Sur la documentation vous verrez parfois le mot clef prototype. Nous ne rentrerons pas de suite dans les détails, mais une méthode disponible sur le prototype est une méthode disponible sur les objets du type en question :

// fromCharCode() est disponible directement sur String
String.fromCharCode(65) // "A"
// toLowerCase() est disponible sur le prototype 
// String.prototype.toLowerCase()
// La méthode s'utilise donc sur une chaine
"Salut".toLowerCase // "salut"