为什么 +str 在 JS 中比 str*1 更好地将字符串转换为数字

Why +str is a better than str*1 in JS to convert string to number?

本文关键字:字符串 转换 数字 更好 +str JS 中比 str 为什么      更新时间:2023-09-26

假设我有一个字符串,其值已经是一个数字,例如 var str = "1234" 现在我想将其转换为数字。

到目前为止,我在互联网上看到了两个技巧,

  1. 使用一元+var num = +str
  2. 使用乘法运算符 *var num = str*1

我想知道一般来说哪一个更好。

正如我从这里接受的答案的评论中看到的那样:将 Json 结果转换为日期,似乎最好避免*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