【问题标题】:Different Javascript behavior on substraction and sum [duplicate]减法和求和的不同Javascript行为[重复]
【发布时间】:2015-03-05 05:16:27
【问题描述】:

为什么在 Javascript 中会发生这样的事情?

'5'+3 = 53
'5'-3 = 2

【问题讨论】:

  • 因为语言规范是这么说的?
  • '5' 是一个字符串,+ 用于字符串连接,所以当 + 与字符串一起使用时,它会连接
  • 你试过jquery吗?
  • @atmd 这和 jQuery 有什么关系?
  • 对不起,这是幽默的尝试

标签: javascript


【解决方案1】:

字符串连接是用 + 完成的,因此 Javascript 会将第一个数字 5 转换为字符串,并将 "5" 和 "3" 连接成 "53"。

您不能对字符串执行减法运算,因此 Javascript 将第二个数字(即“3”)转换为数字,并从 5 中减去 3,结果为“2”。

【讨论】:

    【解决方案2】:

    发生这种情况是因为 + 运算符重载。如果任何操作数是字符串,则执行字符串连接。如果您有两个数字,则执行加法。

    换句话说

    2+3=5
    

    '2'+3='23'2+'3'='23'

    另一方面,对于 - 运算符,它并没有以这种方式重载,所有操作数都转换为数字。

    '8'-2=6
    

    因为- 没有重载,操作数 '8' 将被转换为 8。因此,我们得到 6。

    有关这方面的更多信息,请查看here 并阅读第 11.6.1 和 11.6.2 段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      相关资源
      最近更新 更多