Javascript 使用 process.argv 求和的问题
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”,它将 return "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 }
我想在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”,它将 return "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 }