为什么在 JS 中 +str 比 str*1 更好地将字符串转换为数字?
Why +str is a better than str*1 in JS to convert string to number?
假设我有一个字符串,它的值已经是一个数字,例如var str = "1234"
现在我想把它转换成数字。
到目前为止,我在互联网上看到了两个技巧,
- 使用一元
+
:var num = +str
- 使用乘法运算符
*
:var num = str*1
我想知道总体来说哪个更好
正如我从此处已接受答案的评论中看到的:Converting Json Results to a Date,似乎最好避免使用 *1
。这是真的吗?背后的原因是什么?
基本上操作较少。
一元加号调用内部toNumber
方法,而乘法运算符也调用toNumber
,然后对其进行数学运算。
为什么要执行额外的步骤?
http://www.ecma-international.org/ecma-262/6.0/#sec-unary-plus-operator
http://www.ecma-international.org/ecma-262/6.0/#sec-applying-the-mul-operator
假设我有一个字符串,它的值已经是一个数字,例如var str = "1234"
现在我想把它转换成数字。
到目前为止,我在互联网上看到了两个技巧,
- 使用一元
+
:var num = +str
- 使用乘法运算符
*
:var num = str*1
我想知道总体来说哪个更好
正如我从此处已接受答案的评论中看到的:Converting Json Results to a Date,似乎最好避免使用 *1
。这是真的吗?背后的原因是什么?
基本上操作较少。
一元加号调用内部toNumber
方法,而乘法运算符也调用toNumber
,然后对其进行数学运算。
为什么要执行额外的步骤?
http://www.ecma-international.org/ecma-262/6.0/#sec-unary-plus-operator
http://www.ecma-international.org/ecma-262/6.0/#sec-applying-the-mul-operator