Javascript Java脚本,值未分配给变量

Javascript Java脚本,值未分配给变量,javascript,Javascript,我是Java脚本的新手,我不太明白为什么变量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 choo

我是Java脚本的新手,我不太明白为什么变量
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();

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

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

另一点,对于使用,我建议也使用
基数
参数,如果有前导零的数字,可以将其视为八进制数

var add=函数(a,b){
返回a+b;
};
var减号=函数(a,b){
返回a-b;
};
var乘法=函数(a,b){
返回a*b;
};
var chooseAction=函数(znak){
var作用;
开关(znak){
格“+”:
行动=添加;
打破
案例“-”:
作用=负;
打破
案例“*”:
行动=乘;
打破
}
返回动作;
}
var compute=function(){
var输入=提示(“Wpisz działanie”);
var args=输入。拆分(“”);
var a=parseInt(args[0],10);//使用基数
var b=parseInt(args[2],10);//使用基数
var action=chooseAction(args[1]);
console.log(“Wynik działania:+动作(a,b));
}

compute()您正在添加所有函数,更正它并使用回调,检查此项您需要根据函数的名称检查输入更改运算符,看起来是否相同>“2+3”是一个模块加载器,如果您不确定,我肯定他们在页面的其他地方包含对该脚本的引用,添加一条注释,询问他们是否这样做了。RequireJS是指定
require
函数的内容。@乔治,你确定OP的项目中包含了
require.js
吗?尽管运算符不同,但结果相同?存在运算符问题。但问题是“为什么变量动作没有赋值”。这可能意味着action变量根本没有值。可能问题不完全如果你在提示符==>3+4中传递类似的内容而没有任何空格,则拆分将失败。对,但拆分是基于空格的,请向op询问。