为了账号安全,请及时绑定邮箱和手机立即绑定

js一道运算题,求解~~

js一道运算题,求解~~

潇湘沐 2018-11-13 13:14:52
"1"- -"1";以上的运算结果是2,少掉中间的空格就会报错,有空格,结果就为2,求大神分析下为什么?感谢~~
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

进行减法运算的时候,js会试图把两边的表达式都转成数字,让运算得以进行(算是小小的纠错行为),变成1-(-1),得2。
至于没有空格报错呢,完全就是语法错误。。
而且这是错误不是什么常量不常量的问题, 哪怕换成变量, a--b也是错误的语法啊, 解析器连纠错都不知道怎么纠, 如果给你弄成 a-(-b) 吗? 那等于是直接会破坏掉--, 破坏逻辑了啊.
除非你 a---b, 解析器能给你弄成 (a--)-b, 但这样的写法也很搞笑啊, 没准你想表达的是 a-(--b)呢?

解析器只会在意义(它认为)比较明确的时候,给你做一点纠正, 就像 ''-'' js里只有数字支持减法运算, 所以你不是数字它会给你转成数字, 但 ''+''和 0+'', 这种情况它就需要根据你第一个表达式来做纠正了, 不然它哪知道你是要做拼串还是加法. 至于 把--弄成 - -, 那可就太恶劣了, 完全就是破坏性的纠错, 它是肯定不能做的.

不要太纠结这种东西,娱乐性质的题目。。真正撸代码的时候我相信脑子正常的人都不会这么做的


查看完整回答
反对 回复 2018-12-08
  • 1 回答
  • 0 关注
  • 486 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号