我正在通过其他人的代码进行调试,我找到了以下代码片段:
req.body.address.id = +req.body.address.id
我的第一个想法是,这与使一个负数为正有关,但它并不能做到这一点。这里所讨论的地址id应该始终是数字,在数字前面添加一个+似乎没有任何作用。
有人知道你为什么要这么做吗?
发布于 2014-04-13 20:54:48
一元+运算符将操作数转换为数字。来自MDN
一元加号运算符位于其操作数之前,并计算为其操作数,但如果尚未转换为数字,则尝试将其转换为数字。
例如:
var a = '1';
console.log(a); // "1"
console.log(+a); // 1 所以是的,它对数字没有影响,但是如果你提供一个非数字的值,它对于安全地将它转换成一个数字是有用的。
发布于 2014-04-13 20:55:41
如果有必要,运算符将执行类型转换,强制使用值ToNumber():
var foo = '1';
var bar = +foo;
console.log(typeof foo, foo + 2); // 'string' '12' (concatenates)
console.log(typeof bar, bar + 2); // 'number' 3 (adds)https://stackoverflow.com/questions/23048312
复制相似问题