2015-08-19 5 views
0

Я пытаюсь взять две переменные, добавить их внутри функции и вернуть новую переменную в виде предупреждения. Я не могу понять, что я здесь делаю неправильно. Спасибо за любую помощь!Возвращаемая переменная приглашения Javascript NaN

var num1 = prompt("How much money do you have?"); 
var num2 = prompt("How much money will you add?"); 
var a = parseInt(num1); 
var b = parseInt(num2); 
var result = 0; 

function addTwoNumbers(a,b) { 
    result = a + b; 
} 

addTwoNumbers(); 
return result; 
alert("you will have " + result); 
+1

Я рекомендую прочитать учебное пособие о функциях: http://eloquentjavascript.net/03_functions.html –

+0

Вам следует научиться «отлаживать». Например, вы можете поместить «точку останова» в строку «result = a + b;» и просмотреть значения 'a' и' b' справа в панели отладчика. Вы увидите, что они не определены, потому что вы их не проходили, и это привело бы вас непосредственно к корню вашей проблемы. Если вы не знаете, как отлаживать или использовать такие инструменты, как Chrome devtools, остановите все, что вы делаете, и узнайте сейчас. –

ответ

2

Вы не передавали функции функции. a и b были объявлены, но не передаются функции.

var num1 = prompt("How much money do you have?"); 
var num2 = prompt("How much money will you add?"); 
var a = parseInt(num1); 
var b = parseInt(num2); 

function addTwoNumbers(a,b) { 
    return a + b; 
} 
alert("you will have " + addTwoNumbers(a, b)); 

Пример

http://jsfiddle.net/bt3x829p/1/

Edit 1

Чтобы объяснить, что я имею в виду.

function addTwoNumbers(apple, banana) { 
    return apple + banana; 
} 

Параметр, указанный выше, является заполнителем для фактических аргументов, которые будут переданы. В функции вы должны ссылаться на переданные аргументы через указанные вами параметры.

+1

Пока вы на нем, вы также должны «вернуть» результат. –

+1

Ну, я бы удалил назначение 'result': P –

+0

И тогда вам либо нужно присвоить возвращаемое значение' result', либо поместить вызов внутри 'alert'. –

2

Вы объявили a и b в качестве параметров вашей функции, но вы на самом деле не проходит в значениях. Либо избавиться от формальных параметров от объявления функции, либо передать значения, когда вы его вызываете.

Смежные вопросы