J'essaie d'apprendre JavaScript, mais j'ai rencontré un obstacle. Si la réponse est évidente et atteignable par une simple recherche, je m'excuse d'avance. Je suis novice en programmation et JavaScript, et je ne sais pas quelle ligne de conduite suivre.JavaScript: Lors de l'attribution d'une fonction anonyme à une variable, la valeur de retour de la fonction n'est pas passée, plutôt la fonction comme une chaîne
Dans le code suivant, la fonction prend des valeurs d'un formulaire HTML, effectue un traitement et les renvoie. J'ai testé le processus d'entrée et de sortie et cela fonctionne correctement.
function foo() {
var x = parseInt(document.formdata.fieldone.value);
var y = parseFloat(document.formdata.fieldtwo.value);
if (isNaN(y))
{ var z = x; }
else
{ var z = function(x, y) {
if ((y * (x/100)) < 1) {
return (x + Math.ceil(y * (x/100))); }
else if ((y * (x/100)) > 1) {
return (x + Math.round(y * (x/100))); }
else {
return 0; } } }
var bar = document.getElementById("output");
bar.innerHTML = z; }
Le problème est, lorsque la branche else de l'instruction conditionnelle essaie de traiter la fonction anonyme, la valeur de retour n'est pas affecté; plutôt l'intégralité de la fonction en tant que chaîne. Autrement dit, celle-ci apparaît dans la page HTML:
fonction(x, y) {if ((y * (x/100)) < 1) {return (x + Math.ceil (y * (x/100))); } else if ((y * (x/100))> 1) {return (x + Math.round (y * (x/100))); } else {return 0; }}
J'ai testé le code dans Chrome et Firefox et le résultat est le même.
Toute aide est appréciée et merci d'avance.
Merci, appeler la fonction aide toujours :) – Omega