一道非常有趣的但你未必能回答正确的JavaScript计算题

下面将输出什么?

console.log(1 + - + + + - + 1)

如果你猜的答案跟你调试的答案一致,请说说你的理由。

阅读 2.9k
2 个回答

1 + - + + + - + 1 可以转化为:

1+(-(+(+(+(-(+1))))))

因为js计算是从左向右的, '+' 和 '-' 分别会进行算数运算,而每次运算的对象就是表达式。

所以,每次都会把符号右侧转化为表达式再计算,而转化成表达式之前又会对语句进行求值。

所以第一个 '+' 后的语句求值为表达式的结果为 1 因为都是Number , 所以 1 + 1 为 2.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题