alj*_*n82 18 javascript string operators
我不小心输入了以下JavaScript语句"1" + - "2",我得到了结果"1-2".我不确定为什么减号被视为字符串而不是导致语法错误.
我试图搜索,但我没有得到我想要的答案.
为什么减号被视为一个字符串?它在网上参考我可以看看?谢谢
Mat*_*all 31
简单:- "2"求值为-2因为一元将-其操作数强制转换为数字,这正是ECMA-262规范中定义的行为.
11.4.7一元
-运算符一元运算
-符将其操作数转换为Number类型,然后将其否定.注意否定+0产生?0,否定?0产生+0.生产UnaryExpression
: -UnaryExpression的计算方法如下:
然后,它只是字符串连接的问题:"1" + (-2)不出所料地评估"1-2".到目前为止+,上下文中的字符串连接(而不是加法)运算符应该不足为奇,因为这是规范所说的.
p.s*_*w.g 16
原本的
"1" + - "2"
Run Code Online (Sandbox Code Playgroud)
被解析为
"1" + ( - "2" )
Run Code Online (Sandbox Code Playgroud)
在-这里转换"2"成数字并取消它,这样- "2"的计算结果为-2.所以这变成了:
"1" + (-2)
Run Code Online (Sandbox Code Playgroud)
这里,+导致-2转换为字符串,"-2"然后进行简单的字符串连接.
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |