2015-10-23 2 views
-2

Je suis débutant en Javascript Je reçois toujours vrai retourné quelles que soient les valeurs de mes variables, Il devrait retourner vrai si a et b sont tous les deux pairs, mais faux sinon. Merci pour votre aide.si déclaration dans la fonction Javascript

https://repl.it/9nH/1675

var a = 4; 
 
var b= 5; 
 
function areBothEqual (a, b) { 
 
    if(a===b) { 
 
     return true; 
 
    }else { 
 
     return false 
 
     
 
    } 
 
} 
 

 
var result = areBothEqual(); 
 
document.write(result)

+6

Si vous ne transmettez pas vos valeurs définies de a et b lorsque vous appelez la fonction, vous comparez null à null –

+1

Conseil: 'console.log (a, b)' dans votre fonction. – deceze

+0

La définition de '(a, b)' comme argument évite que vos variables globales soient utilisées dans la fonction, car c'est là que vous définissez ce que la fonction obtient explicitement (les variables globales doivent généralement être évitées, donc yay!). commentaires re: format approprié. –

Répondre

0

Le problème est que vous demandez les arguments a et b dans la ligne function areBothEqual (a, b), mais ils ne sont jamais réellement passé. Il suffit de remplacer le (a, b) avec les parenthèses vides (), car vous pouvez utiliser les a précédemment définies et b à la place.

var a = 4; 
var b= 5; 
function areBothEqual() { 
    if(a===b) { 
     return true; 
    } else { 
     return false 

    } 
} 
areBothEqual() 
+0

Ne pas encourager le débutant à utiliser des variables globales, lui apprendre à passer des arguments correctement. – Barmar

+0

@Barmar on peut vouloir utiliser des variables globales si elles veulent toujours comparer deux valeurs particulières, mais une autre réponse met en évidence la solution alternative. – kabiroberai

+0

Je ne dis pas que les variables globales ne devraient jamais être utilisées, mais les débutants les utilisent trop car ils ne comprennent pas les fonctions. Ils devraient être utilisés seulement si nécessaire. – Barmar

0
var a = 4; 
var b= 5; 
function areBothEqual (a, b) { 
    console.log(a); 
    console.log(b); 
    if(a===b) { 
     return true; 
    }else { 
     return false 

    } 
} 
areBothEqual(); 

Ils sont tous les deux sont 'non définis' égaux ...

+0

Comment est-ce que cela corrige le problème? – Barmar

+0

ce n'est pas un problème .. Il vous dit qu'ils sont égaux. 'undefined' === 'undefined' – mfruizs2

+0

Mais il essaie clairement de comparer les variables 'a' et' b'. Montrez-lui comment le faire correctement, n'expliquez pas simplement pourquoi son code ne fonctionne pas. – Barmar

1

vous n'êtes pas passer les arguments à votre fonction:

areBothEqual(a,b) 

vous aviez:

areBothEqual() 

acclamations