繁体   English   中英

使用 process.argv 总结的 Javascript 问题

[英]Javascript problem in sum using process.argv

我正在尝试在 js 中进行简单的操作。 这是我的代码:

var propriedade = process.argv[2]; 
var a = process.argv[3]; 
var b = process.argv[4];
var result = 0;
switch(propriedade) {
  case "sum":
    result = a + b;
    break;
  case "minus":
    result = a - b;
    break;
} 
console.log(result);

在终端中,结果不是总和。 怎么了?

下一次,请解释你得到的结果。

事实上,当你使用process.argv[i] ,你得到的结果是一个字符串:

console.log(
  {
      typeA: typeof a,
      typeB: typeof b
  }
);

输出

{
   typeA: 'string',
   typeB: 'string'
}

如您所知, String + String是连接,因此如果您传递例如“12”和“45”,它将返回“1245”而不是 57。

为此,您应该使用以下方法将字符串转换为数字(适用于整数或浮点数):

let a = Number(process.argv[3]);
let b = Number(process.argv[4]);

现在效果很好!!!

[编辑]

在 javascript 中,如果您使用诸如“*”、“/”或“-”之类的运算符(“+”除外),则字符串将转换为数字。

let a = "5";
let b = "2"; 
console.log({
    sum: a + b,
    minus: a - b,
    multiplication: a * b,
    devide: a / b
});
//OUTPUT: { sum: '52', minus: 3, multiplication: 10, devide: 2.5 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM