gpt4 book ai didi

javascript - 在 JavaScript 中添加字符串 "1"+ - "2"== "1-2"

转载 作者:行者123 更新时间:2023-12-03 13:16:04 24 4
gpt4 key购买 nike

我不小心输入了以下 JavaScript 语句 "1" + - "2"我有结果"1-2" .
我不确定为什么将减号视为字符串而不是导致语法错误。

我试图搜索,但没有得到我想要的答案。

为什么减号被视为字符串?它有在线引用我可以看看?谢谢

最佳答案

简单:- "2"计算结果为 -2因为一元-将其操作数强制为一个数字,即 the behavior defined in the ECMA-262 spec.

11.4.7 Unary - Operator

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

The production UnaryExpression : - UnaryExpression is evaluated as follows:

  1. Let expr be the result of evaluating UnaryExpression.
  2. Let oldValue be ToNumber(GetValue(expr)).
  3. If oldValue is NaN, return NaN.
  4. Return the result of negating oldValue; that is, compute a Number with the same magnitude but opposite sign.

那么这只是一个字符串连接的问题: "1" + (-2)毫不奇怪,评估为 "1-2" .至此, + 的出现也就不足为奇了。是上下文中的字符串连接(而不是加法)运算符,因为 that's what the spec says.

TL;博士
因为和往常一样,这就是行为 required by the spec.

关于javascript - 在 JavaScript 中添加字符串 "1"+ - "2"== "1-2",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19845420/

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