javascript - JavaScript 比较运算符问题:连续使用 2 个运算符:为什么在 JavaScript 中 (12>11&&11>=10) 不等于 (12>11>=10)
问题描述
像普通数学一样,我试图在控制台中记录这段代码,我希望得到这个值true
console.log(12>11>=10)
但是我得到的是false
,当我尝试登录
时,我最后一次console.log(12>11&&11>=10)
得到了,我尝试了,我得到了flasetrue
console.log( (12>11&&11>=10) == (12>11>=10) )
所以我的问题是:
为什么在 javascript (12>11&&11>=10) 中不等于 (12>11>=10) ?!
我希望任何人都可以提供帮助
解决方案
因为编程语言语法和人类直觉是两个非常不同的东西。语言永远不会“知道你的意思”,你必须完全明确和明确。
你在这里有两个操作。一种使用>
运算符,一种使用>=
运算符。操作是原子的东西。一个会发生,然后另一个。
所以这:
12 > 11
结果如下:
true
然后这个:
true >= 10
结果如下:
false
使用更少的直觉和更多的逻辑。分开你的两个操作:
12 > 11
11 >= 10
并在逻辑上组合它们:
(12 > 11) && (11 >= 10)
这将评估为:
true && true
这将评估为:
true
推荐阅读
- ios - 带有对象映射器的动态键
- tensorflow - TFLiteConverter 会自动量化 Keras 模型吗?
- c# - 如何有选择地从现有 JSON 字符串中删除一些属性?
- servicenow - Rest API 以获取选定的布局/视图
- selenium - 针对 AWS Fargate selenium hub 的量角器/Selenium ETIMEDOUT 错误
- ruby-on-rails - 访问显示错误值的嵌套 ActionController::Parameters
- multithreading - 连续两次调用 pthread_join()。在第一个线程终止之前,第二个调用甚至不应该开始吗?
- python - 如何使用 python 获取用户在 facebook 上发布的所有帖子
- java - 如何让一个控制器正确调用第二个控制器方法来更新第二个控制器 fxml/node?
- android - 如何修复“未找到改造注释。(参数#2)”?