使用 process.argv 求和的 Javascript 问题

我正在尝试用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);

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


繁星coding
浏览 141回答 1
1回答

慕尼黑8549860

下次请解释一下你得到的结果。事实上,当您使用 时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 }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript