Java Script,值不分配给变量

时间:2017-05-26 09:23:46

标签: javascript

我是Java Script的新手,我不太明白为什么变量action没有任何赋值,即使我认为我已经分配了它:

var prompt = require('sync-prompt').prompt;

var add = function(a, b){
    return a + b;
};
var minus = function(a, b){
    return a + b;
};
var multiply = function(a, b){
    return a + b;
};

var chooseAction = function(znak) {
  var action;

  switch(znak) {
    case "+":
        action = add;
        break;
    case "-":
        action = minus;
        break;
    case "*":
        action = multiply;
        break;
  }
  return action;
}

var compute = function() {
  var input = prompt("Wpisz działanie ");
  var arguments = input.split(' ');
  var a = parseInt(arguments[0]);
  var b = parseInt(arguments[2]);
  var action = chooseAction(arguments[1]);
  console.log("Wynik działania: " + action(a, b));
}

compute();

2 个答案:

答案 0 :(得分:3)

除了函数的错误运算符之外,我建议不要使用名为arguments的函数的保留局部变量。

另一点,对于使用parseInt,我建议使用radix参数,如果您的数字前导零,则可以将其视为八进制数。



var add = function(a, b){
    return a + b;
};
var minus = function(a, b){
    return a - b;
};
var multiply = function(a, b){
    return a * b;
};

var chooseAction = function(znak) {
  var action;

  switch(znak) {
    case "+":
        action = add;
        break;
    case "-":
        action = minus;
        break;
    case "*":
        action = multiply;
        break;
  }
  return action;
}

var compute = function() {
  var input = prompt("Wpisz działanie ");
  var args = input.split(' ');
  var a = parseInt(args[0], 10); // use radix
  var b = parseInt(args[2], 10); // use radix
  var action = chooseAction(args[1]);
  console.log("Wynik działania: " + action(a, b));
}

compute();




答案 1 :(得分:-1)

未定义代码中的函数require。因此,当您尝试为prompt变量设置值时会发生错误。您必须添加require功能,它才有效!