2015-10-23 4 views
-2

Я начинаю в Javascript Я всегда получаю true, возвращая любые значения моих переменных, Он должен возвращать true, если a и b оба четные, но false в противном случае. Спасибо за помощь.if statement in Javascript function

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

, если вы не передадите свои определенные значения a и b при вызове функции, вы сравниваете значение null с нулем –

+1

Совет: 'console.log (a, b)' внутри вашей функции. – deceze

+0

Определение '(a, b)' в качестве аргументов функции предотвращает использование глобальных переменных в функции, поскольку именно там вы определяете, что функция явно получает (как правило, следует избегать глобальных варов, поэтому yay!) См. Другие комментарии re: соответствующий формат. –

ответ

0

Вопрос заключается в том, что вы запрашиваете аргументы a и b в линии function areBothEqual (a, b), но они никогда на самом деле прошло. Просто замените (a, b) пустыми скобками (), так как вы можете использовать ранее заданные a и b.

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

    } 
} 
areBothEqual() 
+0

Не поощряйте новичка использовать глобальные переменные, научите его правильно передавать аргументы. – Barmar

+0

@Barmar можно использовать глобальные переменные, если они всегда хотят сравнить два конкретных значения, но другой ответ выделяет альтернативное решение. – kabiroberai

+0

Я не говорю, что глобальные переменные никогда не должны использоваться, но новички слишком много используют их, потому что они не понимают функций. Они должны использоваться только в случае необходимости. – 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(); 

Они являются 'неопределенными' оба равны ...

+0

Как это исправить проблему? – Barmar

+0

это не проблема. Это говорит вам, что они равны. 'undefined' === 'undefined' – mfruizs2

+0

Но он явно пытается сравнить переменные 'a' и' b'. Покажите ему, как это сделать правильно, не просто объясните, почему его код не работает. – Barmar

1

вы не передавая аргументы вашей функции:

areBothEqual(a,b) 

ты:

areBothEqual() 

ура