gpt4 book ai didi

javascript - 在 Javascript 为什么 -'54' +30 的结果是 -24(在 javascript 中类型强制)

转载 作者:行者123 更新时间:2023-12-03 19:55:23 25 4
gpt4 key购买 nike

为什么我将 -'54'+30 表达式的结果作为 -24 但是当我尝试删除 (minus)- from expression 然后它只是字符串的连接并给出 5430 作为输出。任何人都可以解释它是如何工作的。

console.log(-'54'+30)
console.log('54'+30)

最佳答案

因为 unary negation有更高的operator precedance比加法。

一元否定还将其操作数转换为数字 Per ECMA Spec 2017 :

The unary - operator converts its operand to Number type and then negates it. Negating +0 produces -0, and negating -0 produces +0.

-'54'+30 的情况下,步骤是:

  1. 评估一元 -
  2. 右边的操作数是一个String,所以它变成了一个Number
  3. 计算+
  4. 由于第 2 步,左边的操作数是一个 Number,所以 + 操作是加法而不是连接

关于javascript - 在 Javascript 为什么 -'54' +30 的结果是 -24(在 javascript 中类型强制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51366414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com