我是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();
答案 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
功能,它才有效!