关于javascript:为什么+ str比JS中的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
  • 我想知道一般来说哪个更好。

    正如我在这里从接受的答案的评论中看到的:将JSON结果转换为日期,似乎最好避免使用*1。这是真的吗?背后的原因是什么?


    基本上更少的操作。

    一元加号调用内部toNumber方法,而乘法运算符也调用toNumber方法,然后对其执行数学运算。

    为什么要做额外的步骤?

    http://www.ecma-international.org/ecma-262/6.0/sec一元加运算符

    http://www.ecma-international.org/ecma-262/6.0/sec应用MUL运算符