[英]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.