为什么'+';当从字符串转换为浮点或整数时,就像javascript中的解析一样,它在性能上有什么不同?

为什么'+';当从字符串转换为浮点或整数时,就像javascript中的解析一样,它在性能上有什么不同?,javascript,parsing,Javascript,Parsing,parseFloat(“10.1”)+parseFloat(“32.3”) vs +“10.1”++“32.3” 这两个语句将产生相同的结果42.4 使用此语句: +“10.1”++“32.3” 为什么+的行为类似于解析,以及每条语句如何影响程序中的性能?JavaScript使用隐式转换。一元数+只接受数字,因此,当您给它一个字符串时,它会将其转换为数字。JavaScript通过将字符串解析为数字来实现这一点。因为JavaScript没有整数类型,所以它总是被解析为浮点数。要回答性能问题: 根据

parseFloat(“10.1”)+parseFloat(“32.3”)

vs

+“10.1”++“32.3”

这两个语句将产生相同的结果42.4

使用此语句:

+“10.1”++“32.3”


为什么
+
的行为类似于解析,以及每条语句如何影响程序中的性能?

JavaScript使用隐式转换。一元数
+
只接受数字,因此,当您给它一个字符串时,它会将其转换为数字。JavaScript通过将字符串解析为数字来实现这一点。因为JavaScript没有整数类型,所以它总是被解析为浮点数。

要回答性能问题:

根据我的测试,一元运算符
+
比parseFloat快8倍


我猜这与JS中函数调用的开销有关,等等。

我很难找到这个问题“为什么”部分的答案。一元
+
运算符将字符串输入转换为数字输出,因为这是它指定要执行的操作。也许更接近您所寻找的是“一元
+
类似于一元
-
,两者都会产生一个数值,但一元
+
不会否定其操作数”也许?这里似乎有两个问题:“为什么”和“多快”。也许可以发布一个关于性能的不同问题?