这行javascript是做什么的?
当我看地图时,我看到了这条线:这行javascript是做什么的?,javascript,Javascript,当我看地图时,我看到了这条线: total = subtotal + (+myInput.value); 第二个“+”的作用是什么?与熟悉的一元负号(-x)相比,一元加号是完整的。但是,如果myInput.value是字符串之类的其他内容,则它会产生副作用,这一点在这里得到了证实: alert(1+'2'); // 12 alert(1+(+'2')); // 3 这就是所谓的“一元+运算符”,它可以作为一种快速方法,强制将变量转换为数字,以便在数学运算中使用。正如其他人所说,+是将其键入数
total = subtotal + (+myInput.value);
第二个“+”的作用是什么?与熟悉的一元负号(-x)相比,一元加号是完整的。但是,如果myInput.value是字符串之类的其他内容,则它会产生副作用,这一点在这里得到了证实:
alert(1+'2'); // 12
alert(1+(+'2')); // 3
这就是所谓的“一元+运算符”,它可以作为一种快速方法,强制将变量转换为数字,以便在数学运算中使用。正如其他人所说,+是将其键入数字。这是需要的,因为表单输入总是字符串值,向另一个变量添加一个字符串会将它们连接成一个新字符串,即使字符串看起来像一个数字。将事物转换成一个数字。从算术上讲,一元加号运算符是一个noop。但与所有其他纯算术运算符一样,它将把参数转换为JavaScript的数字类型,因此可以用作显式转换的简写 JavaScript中的显式类型转换是通过调用适当的构造函数而不使用
new
操作符来完成的
比如说,
Number(foo)
将foo
转换为number类型的原语,而newnumber(foo)
将为原语另外创建一个包装器对象,因此相当于
Object(Number(foo))
类似于
+
的用法是
转换为布尔类型。谢谢,我不知道这个符号。我假设这基本上是parseInt()的简写形式?它们不完全相同,Luke,请参阅此处了解一些信息:当然,它更接近于“parseFloat”+-强制转换支持完整的浮点数文本,包括像+'Infinity'这样的奇怪字符。实际上,(+foo)
最接近的是显式强制转换number(foo)
-事实上,它们应该产生相同的结果。有什么理由认为这比parseInt更可取吗?