Une petite fonction récursive de calcul de factorielle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
function fact(nb){
	if(isNaN(nb) || nb < 0 || Math.round(nb) != nb){
		throw('Erreur de valeur : ' + nb + ' n\'est pas un nombre entier positif');
	}
	return nb === 0 ? 1 : nb * fact(nb - 1);
}
Bon, on pourrait peut-être l'optimiser en évitant le test du paramètre à chaque appel, mais bon, j'ai opté pour la concision