答案 0 :(得分:33)
与熟悉的一元减号(-x)相比,一元加号是完整的。然而,它依赖于这里的副作用,将myInput.value转换为Number,如果它是其他的东西,比如String:
alert(1+'2'); // 12
alert(1+(+'2')); // 3
答案 1 :(得分:8)
这称为“一元+运算符”,它可以用作强制变量转换为数字的快速方法,以便可以在数学运算中使用。
答案 2 :(得分:3)
unary + operator将事物变成了数字。
答案 3 :(得分:2)
+是将其强制转换为其他人所说的数字。这是需要的,因为表单输入总是字符串值,并且将字符串添加到另一个变量将它们连接成一个新字符串,即使该字符串看起来像一个数字。
答案 4 :(得分:1)
算术上说,一元加运算符是一个noop。但与所有其他纯算术运算符一样,它会将其参数转换为JavaScript的数字类型,因此可以用作显式转换的简写。
JavaScript中的显式类型转换是通过使用new
运算符调用相应的构造函数而不是来完成的。
例如,
Number(foo)
会将foo
转换为数字类型的基元,而new Number(foo)
会另外为基元创建包装器对象,因此相当于
Object(Number(foo))
与+
类似,使用!!
转换为布尔类型。