Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript编号0显示为未定义_Javascript - Fatal编程技术网

Javascript编号0显示为未定义

Javascript编号0显示为未定义,javascript,Javascript,我正在做一个JS挑战,在工作时遇到了数字0,显示为未定义 零仅在方程中的第二位显示未定义,并且在加法、减法、除法或乘法中显示未定义 例: 这有更深层次的原因吗?我很困惑为什么它显示未定义的1路,而不是另一路。我也试过交换 function zero(arg) { let num = 0; if(!arg) {return num;} if(arg.symbol == "+") {return num + arg.param} if(arg.symbol == "-") {retu

我正在做一个JS挑战,在工作时遇到了数字0,显示为未定义

零仅在方程中的第二位显示未定义,并且在加法、减法、除法或乘法中显示未定义

例:

这有更深层次的原因吗?我很困惑为什么它显示未定义的1路,而不是另一路。我也试过交换

function zero(arg) {
  let num = 0;
  if(!arg) {return num;}
  if(arg.symbol == "+") {return num + arg.param}
  if(arg.symbol == "-") {return num - arg.param}
  if(arg.symbol == "*") {return num * arg.param}
  if(arg.symbol == "/") {return Math.floor(num / arg.param)}
}
function one(arg) {
  let num = 1;
  if(!arg) {return num;}
  if(arg.symbol == "+") {return num + arg.param}
  if(arg.symbol == "-") {return num - arg.param}
  if(arg.symbol == "*") {return num * arg.param}
  if(arg.symbol == "/") {return Math.floor(num / arg.param)}
}
function two(arg) {
  let num = 2;
  if(!arg) {return num;}
  if(arg.symbol == "+") {return num + arg.param}
  if(arg.symbol == "-") {return num - arg.param}
  if(arg.symbol == "*") {return num * arg.param}
  if(arg.symbol == "/") {return Math.floor(num / arg.param)}
}
function three(arg) {
  let num = 3;
  if(!arg) {return num;}
  if(arg.symbol == "+") {return num + arg.param}
  if(arg.symbol == "-") {return num - arg.param}
  if(arg.symbol == "*") {return num * arg.param}
  if(arg.symbol == "/") {return Math.floor(num / arg.param)}
}

function plus(arg) {
  if(!arg) {return "+";}
  let method = {param: arg, symbol: "+"}
  return method;
  }
function minus(arg) {
  if(!arg) {return "-";}
  let method = {param: arg, symbol: "-"}
  return method;
  }
function times(arg) {
  if(!arg) {return "*";}
  let method = {param: arg, symbol: "*"}
  return method;
  }
function dividedBy(arg) {
  if(!arg) {return "/";}
  let method = {param: arg, symbol: "/"}
  return method;
  }

zero()
返回
0
plus(0)
返回
“+”
三个(“+”)
计算
“+”。symbol
未定义,因为字符串没有名为
symbol
zero()
的属性返回
0
返回
plus(0)
返回
three(“+”)
计算
“+”。symbol
未定义的
,因为字符串没有名为
symbol

的属性。您可以使用返回值的函数或作为参数移交的函数来包装值

const
numberFunc=value=>f=>f?f(值):值,
零=numberFunc(0),
三=数字Func(3),
plus=a=>b=>a+b;
log(零(加上三个());
log(三个(加上(零()));
console.log(三个());

log(zero())您可以使用返回值的函数或作为参数移交的函数来包装这些值

const
numberFunc=value=>f=>f?f(值):值,
零=numberFunc(0),
三=数字Func(3),
plus=a=>b=>a+b;
log(零(加上三个());
log(三个(加上(零()));
console.log(三个());
log(zero())
由于此部分的原因,它返回未定义

function plus(arg) {
     if(!arg) {return "+";}
     let method = {param: arg, symbol: "+"}
     return method;
 }
当在没有参数的情况下调用
zero()
时,in
plus(arg)
应返回“+” 因为
!0=真
并且执行第一个条件 这就是为什么在没有参数的情况下调用
zero()
,它显然是未定义的 由于此部分的原因,它返回未定义

function plus(arg) {
     if(!arg) {return "+";}
     let method = {param: arg, symbol: "+"}
     return method;
 }
当在没有参数的情况下调用
zero()
时,in
plus(arg)
应返回“+” 因为
!0=真
并且执行第一个条件
这就是为什么在没有参数的情况下调用
zero()
,它将是未定义的

那么
zero()
返回什么?那么,
plus(zero())
返回什么?那么,
three(加上(zero())
返回什么?要关注关键点,
!0
评估为?那
呢!3
?您需要检查
typeof(arg)==“undefined”
感谢@jornsharpe的简单调试演练。我想我真的需要另一双眼睛来观察这个。那么
zero()
返回什么呢?那么,
plus(zero())
返回什么?那么,
three(加上(zero())
返回什么?要关注关键点,
!0
评估为?那
呢!3
?您需要检查
typeof(arg)==“undefined”
感谢@jornsharpe的简单调试演练。我想我真的需要另一双眼睛。