我正在尝试用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);在终端中,结果不是总和。怎么了?
1 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
下次请解释一下你得到的结果。
事实上,当您使用 时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 }
添加回答
举报
0/150
提交
取消