2013-12-09 4 views
0
function mathProb() { 
    var x = parseInt(prompt("Enter first integer", "")); 
    var y = parseInt(prompt("Enter the second integer", "")); 
    var operand = prompt("Enter type of operation", ""); 

    if (operand == "+" || "add") { 
     var sum = x + y; 
     document.write("Your sum is " + sum); 
    } else if (operand == "-") { 
     var difference = x - y; 
     document.write("Your difference is " + difference); 
    } else if (operand == "*") { 
     var product = x * y; 
     document.write("Your product is " + product); 
    } else if (operand == "/") { 
     var quotient = x/y; 
     document.write("Your quotient is " + quotient); 
    } else { 
     document.write("Oops something went wrong"); 
    } 
} 

Для начала я читаю книгу по JavaScript и делаю все хорошо, теперь я нахожусь на функциях и получаю их до тех пор, пока не будут введены параметры, кто-нибудь может объяснить, что параметр прост?Справка JavaScript (это довольно простой им новичок)

Почему эта функция работает при названии function mathProb() и function mathProb(x,y,operand)?

И третий вопрос от предыдущей, поэтому, когда я вызываю функцию в HTML (<input type="button" value="Calculator" onclick="mathProb()"/>) я должен использовать mathProb(), даже если его имени mathProb(x,y,operand). Если я назову его, используя это имя, он не будет работать. Пожалуйста помоги?

+3

Пожалуйста, попробуйте подвести свой qeustion в названии, чтобы сделать его более описательным проблема. –

ответ

1

Первая линия:

if(operand=="+"||"add") 

Всегда будет верно, как выражение "add" всегда возвращает истинное значение иш. Вы, вероятно, собираетесь использовать:

if(operand=="+" || operand=="add") 

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

function add(x, y) 
{ 
    return x + y; // x and y are variables known within this function 
} 

Вы бы затем вызвать вашу функцию, как так:

var oneplusone = add(1, 1); // Adds 1 and 1 

Используя эти знания, можно переписать код, как это:

function mathProb(x, y, operand) 
{ 
    // No need for var x, etc as these can now be passed in.. 
} 

Затем позвоните по телефону:

mathProb(
    parseInt(prompt("Enter first integer","")), // This is x 
    parseInt(prompt("Enter the second integer","")), // This is y 
    prompt("Enter type of operation","") // This is operand 
); 

Имейте в виду, вы могли бы еще назвать вашу функцию mathProb без параметров:

mathProb(); 

... если вы действительно хотите. JavaScript делает это позволяет (в отличие от многих других языков). Однако в вашей функции переменные x, y и operand будут не определено, что может привести к неожиданным результатам, если вы этого не заметите.

0

Вам нужно позвонить и передать функцию как mathProb(1,2,'+')

HTML:

<input type="button" value="Calculator" onclick="mathProb(1,2,'+')"/> 

Javacript:

function mathProb(x,y,operand) 
{ 
    //var x = parseInt(prompt("Enter first integer","")); 
    //var y = parseInt(prompt("Enter the second integer","")); 
    //var operand = prompt("Enter type of operation",""); 

    if(operand=="+"|| operand=="add") 
    { 
     var sum = x+y; 
     document.write("Your sum is " +sum); 
    } 
    else if(operand=="-") 
    { 
     var difference = x-y; 
     document.write("Your difference is " +difference); 
    } 
    else if(operand=="*") 
    { 
     var product = x*y; 
     document.write("Your product is " +product); 
    } 
    else if(operand=="/") 
    { 
     var quotient = x/y; 
     document.write("Your quotient is " +quotient); 
    } 
    else 
    { 
     document.write("Oops something went wrong"); 
    } 
} 
Смежные вопросы